gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:04 25 4
gpt4 key购买 nike

我正在尝试像这样从游标中读取内容:

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.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.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)

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

最佳答案

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

这是一个例子:

<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 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5927833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com