小编Phi*_*ipK的帖子

Android权限拒绝如果其他应用程序未先安装

我试图从光标中读取内容,如下所示:

cursor = context.getContentResolver().query(TASKS_URI, null, null, new String[]{"-1", "true"}, null);
Run Code Online (Sandbox Code Playgroud)

TASKS_URI在哪里:

private final static Uri TASKS_URI = Uri.parse("content://org.dayup.gtask.data/tasks");
Run Code Online (Sandbox Code Playgroud)

所以我想要做的就是从另一个应用程序获取光标.

在我的manifest.xml中,我将我的权限定义为:

   <uses-permission android:name="org.dayup.gtask.permission.READ_TASKS"/>
Run Code Online (Sandbox Code Playgroud)

问题是,如果我的应用程序安装在另一个应用程序之前(在这种情况下是gtask),我会收到以下错误:

05-08 15:26:45.380: ERROR/ActivityThread(18564): Failed to find provider info for org.dayup.gtask.key
05-08 15:26:45.390: ERROR/AndroidRuntime(18509): FATAL EXCEPTION: Thread-12
java.lang.SecurityException: Permission Denial: reading org.dayup.gtask.GoogleTaskProvider uri content://org.dayup.gtask.data/tasks from pid=18509, uid=10114 requires org.dayup.gtask.permission.READ_TASKS
at android.os.Parcel.readException(Parcel.java:1322)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:372)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:408)
at android.content.ContentResolver.query(ContentResolver.java:264)
Run Code Online (Sandbox Code Playgroud)

如果我重新安装我的应用程序或我的应用程序安装后其他应用程序一切正常.有关如何在运行时重新获取这些权限的任何想法?

permissions android

8
推荐指数
1
解决办法
2044
查看次数

标签 统计

android ×1

permissions ×1