2017-08-10 70 views
1

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

在這個特定的應用程序中,用戶已經知道當用戶按下按鈕時該設備將拍攝圖像。所以從用戶的角度來看,不需要明確授予權限。

在此先感謝。

+0

有沒有辦法經常安卓。僅適用於Android的東西。 –

+0

檢查此[如何請求權限 - 從服務在Android的棉花糖](https://stackoverflow.com/questions/32292675/how-to-request-permissions-from-a-service -in-android-marshmallow) – ELITE

回答

0

沒有辦法在運行時添加權限,它們必須在AndroidManifest中顯式顯示,因爲它們需要在安裝時呈現給Android用戶。

我可以建議你看一看以下崗位:當它在其 清單的標籤被宣佈可以執行的Permission issue while starting a service from android

到服務的全球訪問。通過這樣做,其他應用程序將需要在其自己的清單中聲明對應元素,以便能夠啓動,停止,或綁定到服務。

作爲薑餅,使用Context.startService(意向)時,可以 還設置Intent.FLAG_GRANT_READ_URI_PERMISSION和/或 Intent.FLAG_GRANT_WRITE_URI_PERMISSION上的意圖。這將授予 服務臨時訪問意向中的特定URI。 訪問將保持到該服務已爲該 啓動命令或更高版本調用stopSelf(int),或者直到該服務已完全停止 。這適用於授予對其他應用程序的訪問權限,這些應用程序沒有請求保護服務的權限,或者甚至根本沒有導出 服務。

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

有關 權限和安全性的更多信息,請參見安全性和權限文檔。

0

製作一個沒有UI(沒有任何xml佈局)的透明活動並且執行android棉花糖權限的代碼。當您的應用程序運行,然後從服務中調用此活動,並且僅當應用程序從硬件或任何位置觸發時,用戶纔會看到權限。而應用程序是開放的透明活動是開放的,用戶可以授予權限。

+0

但問題是設備上沒有屏幕。所以用戶無法查看權限。 – KTB

+0

您的應用程序只有服務正確...從該服務調用透明活動啓動您的應用程序。意味着當應用程序觸發某事(啓動服務)。 簡單:步驟1您可以在沒有UI和代碼的情況下進行透明活動,獲得您想要的權限。 第2步。從服務調用此活動得到它(您可以從服務啓動活動,不需要任何UI屏幕)。 而當此活動只調用權限彈出來第一次時,應用程序嵌入在設備中。 –