【发布时间】:2014-01-01 22:17:05
【问题描述】:
我在 Android 中遇到了 sqlite db 的问题。但是当我在互联网上进行快速研究时,我怀疑问题与 sqlite 无关,而是与系统用户有关。我的应用程序未被识别为访问数据库功能的授权用户。我试图在堆栈溢出中应用可能的建议解决方案,但没有一个有所作为。这是我每次尝试使用 db 功能时都面临的 LogCat。
12-14 02:35:17.721 2953-3355/? E/DatabaseUtils﹕ Writing exception to parcel
java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13082)
at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038)
at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:577)
at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273)
at android.os.Binder.execTransact(Binder.java:388)
at dalvik.system.NativeStart.run(Native Method)
我尝试添加权限
android.permission.INTERACT_ACROSS_USERS_FULL
但仍然没有声音。奇怪的是,当我尝试添加 INTERNET 权限时,Android Studio 0.3(我使用的 ide)建议我可以选择可能的权限。但是当涉及到 INTERACT_ACROSS_USERS_FULL 权限时,它的行为就像它不知道这个权限一样。我的测试设备是运行 4.3 的三星 S4。
我认为我不是唯一一个尝试在 android 上使用 db 的人。所以有一个解决方案。
如何才能真正为我的应用程序添加 INTERACT_ACROSS_USERS_FULL 权限?
【问题讨论】:
-
好的,这个帖子我看过几次了。但是这是什么意思?如何给我的应用程序提供与系统相同的签名?
-
你必须要么成为创建者或他们的系统,要么说服他们签署你的应用程序——这对大多数开发者来说都不现实,也就是说,你不能.听起来您确实在做一些不必要的奇怪事情。您是否尝试过构建一个简单的数据库示例,可以追溯到多用户支持之前的日子?
-
感谢您的关注。我意识到这个问题与多用户问题无关。数据库操作现在可以工作了。但是这个错误一直显示。它目前不影响功能,但我想知道它以后会成为问题。
-
到目前为止有什么解决方案吗?
标签: android sqlite permissions user-permissions