簡體   English   中英

以編程方式授予Android服務的權限

[英]Grant permissions programatically for an Android service

我正在構建一個應在沒有任何屏幕的硬件上運行的應用程序。 要運行該應用程序,我需要兩個權限:攝像頭和寫入存儲。 由於我的應用程序沒有任何UI,並且設備沒有任何顯示UI的方式,因此我想知道如何為該應用程序授予權限。

在此特定應用程序中,用戶已經知道當用戶按下按鈕時設備將在拍攝圖像。 因此,從用戶的角度來看,無需顯式授予權限。

提前致謝。

無法在運行時添加權限,它們必須在AndroidManifest中是顯式的,因為它們需要在安裝時提供給Android用戶。

我可以建議您看看以下帖子: 從android啟動服務時的權限問題

在清單的標記中聲明服務時,可以強制對服務進行全局訪問。 這樣,其他應用程序將需要在自己的清單中聲明一個相應的元素,以便能夠啟動,停止或綁定到服務。

從GINGERBREAD開始,使用Context.startService(Intent)時,還可以在Intent上設置Intent.FLAG_GRANT_READ_URI_PERMISSION和/或Intent.FLAG_GRANT_WRITE_URI_PERMISSION。 這將向服務授予對Intent中特定URI的臨時訪問權限。 訪問將一直保留,直到服務為該啟動命令或更高版本的命令調用stopSelf(int)為止,或者直到服務完全停止為止。 這適用於授予對尚未請求保護服務的權限的其他應用程序的訪問權限,甚至在根本不導出服務時也是如此。

此外,服務可以通過在執行該調用的實現之前調用checkCallingPermission(String)方法來保護具有權限的單個IPC調用。

有關一般權限和安全性的更多信息,請參閱“安全性和權限”文檔。

在沒有UI的情況下進行透明活動(沒有任何xml布局),並執行android棉花糖權限代碼。 當您的應用程序運行時,請從服務調用此活動,並且僅當應用程序從硬件或任何位置從任何地方觸發時,用戶才會看到權限。 在打開應用程序時,透明活動已打開,用戶可以授予權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM