我有两个应用程序:App1和App2
在App1中指定了这样的权限
<uses-permission android:name="com.commonname.providers.app2.READ_LOGIN_TOKEN" />
在App2指定的peromission像这样
<uses-permission android:name="com.commonname.providers.app1.READ_LOGIN_TOKEN" />
我按顺序安装了应用程序:首先是App1然后是App2。 当我运行App1时,我收到了SecurityException,如下所示:
Writing exception to parcel
java.lang.SecurityException:Permission Denial:read com.commonname.providers.App1 uri 内容://com.commonname.providers.app1/logintoken来自pid = 5550, uid = 10919需要com.commonname.providers.app1.READ_LOGIN_TOKEN, 或grantUriPermission() 在android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:608) 在android.content.ContentProvider $ Transport.enforceReadPermission(ContentProvider.java:483) 在android.content.ContentProvider $ Transport.query(ContentProvider.java:212) 在android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112) 在android.os.Binder.execTransact(Binder.java:565)
在运行应用程序时是否存在再次请求权限的方法? 或者,如果首先安装了应用程序,则可以通过其他方式访问此权限。
我已阅读本文https://github.com/commonsguy/cwac-security/blob/master/PERMS.md#android-50-behavior,并根据安装顺序了解,但可能存在某种方式。
答案 0 :(得分:-3)
它依赖于您的SDK版本,如果它高于23,您必须请求权限运行时。