我的存儲訪問架構DocumentsProvider用在我的應用現有的內容提供商來訪問存儲在從我的服務器上的文件,我已經在設備上的本地存儲信息的數據庫表。當我從openDocument訪問內容提供者時,這工作正常。然而,當我從createDocument訪問它時,我得到一個SecurityException:Permission Denial:writing ... uri ...要求導出提供者,或者grantUriPermission()。使用QuickOffice在我的文檔提供程序中創建新文件時會發生這種情況。我的數據庫內容提供程序不會導出,因爲它僅供應用程序內部使用。鑑於兩個提供商都在我的應用程序中,爲什麼我需要數據庫內容提供商的訪問權限?有沒有任何解決方法,導出我的數據庫內容提供者。Android的存儲訪問架構:從DocumentsProvider訪問一個未導出的內容提供商
0
A
回答
0
就在你的內部ContentProvider的基礎上,來電者的身份活頁夾執行安全。來電者有一個Uri權限授予,以進入您的DocumentsProvider
,但當您轉身訪問您的第二個內部提供商時,它將根據其身份拒絕訪問,因爲它應該如此。
如果你肯定知道來電者應該有機會,你可以暫時釋放自己的身份,並恢復到您的應用程序的正常身份,允許您訪問您的內部供應商。
下面是一個例子:
// Delegate to real provider
final long token = Binder.clearCallingIdentity();
try {
return getContext().getContentResolver().openFileDescriptor(target, mode);
} finally {
Binder.restoreCallingIdentity(token);
}
相關問題
- 1. 訪問內容提供商
- 2. 無法訪問Android內容提供商
- 3. Android:從另一個應用程序訪問內容提供商
- 4. 訪問聯繫人內容提供商
- 5. 同步訪問內容提供商
- 6. 限制訪問內容提供商
- 7. Android的奇巧存儲訪問架構
- 8. 通過內容提供商訪問Android電子郵件
- 9. 從另一個應用程序的自定義內容提供商訪問
- 10. 從自定義內容提供商訪問數據
- 11. 如何訪問其他應用程序的內容提供商
- 12. 用於郵件訪問的Gmail內容提供商
- 13. 網絡存儲的內容提供商
- 14. 從Android訪問雲存儲
- 15. Android從NDK/C++端訪問內容提供者數據
- 16. 我如何訪問報警內容提供商
- 17. 如何通過內容提供商訪問聯繫人數據
- 18. 內容提供商公共字段訪問
- 19. Android內容提供商測試的真正內容提供商
- 20. 如何訪問omniauth提供商的Devise_token_auth訪問令牌?
- 21. Android數據訪問設計模式:內容提供者vs存儲庫
- 22. 來自內部存儲與內容提供商的Android Intent.ACTION_SEND
- 23. Android:服務中的內容提供者訪問
- 24. FFMPEG Android存儲訪問框架
- 25. 提供API訪問網站的框架?
- 26. 存儲訪問框架deleteDocument
- 27. 訪問服務提供商的另一個數據庫
- 28. Android的內容提供商給未知的URL內容:// COM
- 29. 只讀訪問存儲過程內容
- 30. android內容提供商