我正在尝试在可穿戴设备上本地将连续的数据流写入 android wear。我有一个名为 DataSaver 的类,它在手机端工作得很好,但相同的代码在可穿戴设备上不起作用。我拥有在穿戴式设备和移动设备上写入和读取的 android 权限。
在 DataSaver 的构造函数中,我有以下内容:
if (!isExternalStorageWritable()) Log.e(TAG, "External storage is not writable"); //This line does not show anything on the log. So, esExternalStorageWritable returns false.
File rootDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);//Environment.getExternalStorageDirectory();
if (!rootDir.canWrite())
{
Log.d(TAG, "cannot write in the root: "+rootDir.toString()+", space: "+rootDir.getUsableSpace()+", can read: "+rootDir.canRead()+", list: "+rootDir.list());
}
函数isExternalStorageWritable()实现如下:
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable()
{
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state))
{
return true;
}
return false;
}
这总是在我检查 rootDir 是否可以写入的 if 语句中。 rootDir.canRead 也返回 false。设备上的可用空间返回为 2.2GB。
后面几行中的 mkdirs 失败,因为它无法写入 root。有什么想法,建议吗?我将不胜感激。
最佳答案
问题是我必须在 watch 的设置中手动授予权限才能正常工作。基本上转到:设置 -> 权限 -> 你的应用程序,并检查存储是否被禁用(在我的情况下)。单击一次以切换值。
请记住对 list 具有写入权限。
关于android - 在本地写入 android wear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316116/