我在Android中遇到了sqlite db的问题.但是当我在互联网上进行快速研究时,我怀疑这个问题与sqlite无关,而与系统用户无关.我的应用程序未被识别为访问数据库功能的授权用户.我尝试在堆栈溢出中应用可能的建议解决方案,但它们都没有区别.这是我每次尝试使用数据库功能时遇到的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.permission.INTERACT_ACROSS_USERS_FULL
是签名级别的权限.除非您的应用程序与系统具有相同的签名,否则您的应用程序将无法使用它.
除非您是创建者或系统构建者,或者与他们合作以便他们愿意用他们的证书签署您的apk,否则这不是您可以实现的.换句话说,这对大多数开发人员来说是不受限制的.
我收到错误android.permission.INTERACT_ACROSS_USERS_FULL,因为我在项目的bin目录中存在一些冲突。我对我的应用包ID进行了一些更改,bin目录中的app-file-1.apk与项目不匹配。
我执行了一个项目> clean,并检查bin文件夹是否已清除并重新生成,并且现在可以正常工作。