权限拒绝:这需要android.permission.INTERACT_ACROSS_USERS_FULL

gur*_*kan 34 sqlite permissions android user-permissions

我在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)
Run Code Online (Sandbox Code Playgroud)

我试图添加权限

android.permission.INTERACT_ACROSS_USERS_FULL
Run Code Online (Sandbox Code Playgroud)

但仍然没有声音.奇怪的是当我尝试添加INTERNET权限Android Studio 0.3(我使用的是ide)建议我可以选择的权限.但是当谈到INTERACT_ACROSS_USERS_FULL权限时,它的行为就像它不知道这个权限.我的测试设备是在4.3上运行的三星S4.

我假设我不是唯一一个尝试在android上使用db的人.所以有一个解决方案.

我怎样才能真正为我的应用程序添加INTERACT_ACROSS_USERS_FULL权限?

Sam*_*ICA 19

根据这个答案:android.permission.INTERACT_ACROSS_USERS_FULL是签名级别的权限.除非您的应用程序与系统具有相同的签名,否则您的应用程序将无法使用它.

除非您是创建者或系统构建者,或者与他们合作以便他们愿意用他们的证书签署您的apk,否则这不是您可以实现的.换句话说,这对大多数开发人员来说是不受限制的.

  • 我是否添加了此权限,为什么会出现如此复杂的响应? (11认同)
  • @Siddharth:是的,这个问题在三星设备上大多是一致的(特别是S3).这通常只是一个例外,并不会影响您的流程,因此您可能会忽略它.它似乎已经在S4中解决了.我不确定可以做什么,如果这会导致你的应用程序出现问题. (6认同)
  • 在三星设备上,如果我不使用它,我会得到一个例外.如果我使用非三星,我会得到一个例外.我怎么办这个cae? (2认同)

Pel*_*nes 5

我收到错误android.permission.INTERACT_ACROSS_USERS_FULL,因为我在项目的bin目录中存在一些冲突。我对我的应用包ID进行了一些更改,bin目录中的app-file-1.apk与项目不匹配。

我执行了一个项目> clean,并检查bin文件夹是否已清除并重新生成,并且现在可以正常工作。