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

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

概述我试图从光标中读取内容,如下所示: cursor = context.getContentResolver().query(TASKS_URI, null, null, new String[]{"-1", "true"}, null); TASKS_URI在哪里: private final static Uri TASKS_URI = Uri.parse("content://org.dayu 我试图从光标中读取内容,如下所示:
cursor = context.getContentResolver().query(TASKS_URI,null,new String[]{"-1","true"},null);

TASKS_URI在哪里:

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

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

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

<uses-permission androID:name="org.dayup.gtask.permission.READ_TASKS"/>

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

05-08 15:26:45.380: ERROR/ActivityThread(18564): Failed to find provIDer info for org.dayup.gtask.key05-08 15:26:45.390: ERROR/AndroIDRuntime(18509): FATAL EXCEPTION: Thread-12java.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_TASKSat 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)

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

解决方法 有一个解决方法.
诀窍是将权限定义为您自己的权限.

这是一个例子:

<uses-permission androID:name="com.timsu.astrID.permission.READ_TASKS" /><permission androID:name="com.timsu.astrID.permission.READ_TASKS"    androID:permissionGroup="androID.permission-group.PERSONAL_INFO"    androID:protectionLevel="dangerous" androID:label="read astrID tasks data" /><uses-permission androID:name="androID.permission.CHANGE_COMPONENT_ENABLED_STATE" /><!-- dato gtask --><uses-permission androID:name="org.dayup.gtask.permission.READ_TASKS" /><permission androID:name="org.dayup.gtask.permission.READ_TASKS"    androID:permissionGroup="androID.permission-group.PERSONAL_INFO"    androID:protectionLevel="dangerous" androID:label="read dato gtasks tasks data" />
总结

以上是内存溢出为你收集整理的Android权限拒绝如果其他应用程序未先安装全部内容,希望文章能够帮你解决Android权限拒绝如果其他应用程序未先安装所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1136191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存