android - 在本地写入 android wear

标签 android wear-os

我正在尝试在可穿戴设备上本地将连续的数据流写入 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/

相关文章:

android - "Could not find a method .. in the activity class .. for onClick handler"

android - 如何将标题放在android中的 ListView 中

java - 如何在Parcelable类中实现读写

java - 从 Binder stub 实现中捕获了一个 RuntimeException

android - Google Fit API : ApiException 17 (Fitness. 客户端在此设备上不可用)

java - 如何获得以像素为单位的 View 之间的距离?

java - 自定义 ListView 和 Sherlock 列表 fragment

android - 从手机启动 android wear 应用程序

android - 将不同的 Extras 传递给不同的 setDisplayIntent,但收到的是相同的

android - 无法在 Wear 上安装我的应用程序