android - 无法在第二个用户帐户上打开数据库,错误 EACCES(权限被拒绝)

标签 android database multi-user

我的一个应用程序和一个支持多用户的 Galaxy Nexus 10 有一些问题。我的应用程序必须复制一个数据库,当我作为平板电脑的第一个用户登录时这工作正常,但它失败了

java.io.FileNotFoundException: /data/data/packagename/dbname.db: open failed: EACCES (Permission denied)

当我使用第二个帐户登录时。 第二个账户好像没有权限写入/data/data...

那么,我们能做些什么呢?我已经阅读了一些关于这个问题的主题,仍然没有令我满意的答案。有没有可以用来在用户之间共享数据的文件夹?!

最佳答案

The second account seems to have no rights to write to /data/data...

正确。

So, what can be done about it?

我猜你硬编码了一条路径。如果是这样,请不要这样做。使用 getDatabasePath() 为当前用户 找到正确的数据库路径。

Is there a folder which can be used to share data between users?!

据我所知不是。甚至外部存储在用户之间也是分开的。实际上,设备上的独立用户帐户就好像这些用户在完全独立的设备上一样。

关于android - 无法在第二个用户帐户上打开数据库,错误 EACCES(权限被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969722/

相关文章:

port - Python Flask服务器将另一个端口添加到域

Android,setVisbility 在 RelativeLayout 中不起作用

database - 关系数据库的规范化

mysql - SELECT INTO 在 mysql 中等效

c# - Web 应用程序与 Linux 多用户应用程序

google-app-engine - 使用 Google App Engine 的大型多用户实时应用程序

android - 处理 Android M 应用程序链接中的特定路由

java - Android:AdMob 问题

java - 从一开始就立即调用第二个广播接收器?

python - 如何在单独的模块中管理 peewee 数据库?