我有一個供應商在我的應用程序烏里不被許可給供應商的路徑
<provider android:authorities="com.myapp.android.provider" android:exported="false" android:name="com.myapp.android.provider.FileSystemProvider">
<grant-uri-permission android:pathPrefix="/"/>
</provider>
當我打電話以下意圖:
Intent intent = new Intent();
intent.setClassName(getPackageName(), "com.myapp.android.CameraActivity");
intent.setData(Uri.parse("content://com.myapp.android.provider/"));
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION
| Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
| Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
我得到異常
引起:java.lang.SecurityException:權限拒絕:啓動 意圖{dat = content://com.myapp.android.provider/ flg = 0xc3 cmp = com ......../com .........(has extras)} from ProcessRecord {44955bc0 9477:com ...../u0a260}(pid = 9477, uid = 10260)未從uid導出10261
我做錯了什麼?我試圖指定一個文件或不同目錄的完整路徑,但它從來沒有工作。
但是爲什麼?我授予訪問 –
Android文檔的說法:'如果內容提供者的grantUriPermissions屬性爲「true」,則可以爲提供者的權限下的任何數據授予權限。但是,如果該屬性爲「false」,則只能將權限授予由此元素指定的數據子集。提供者可以包含任意數量的元素。每個人只能指定一個路徑(只有三種可能的屬性之一)。# –
@SteveWarner:您授予訪問「Uri」的權限。該活動位於其他人的應用中,並且該活動未導出。 – CommonsWare