2010-06-28 45 views
5

我是Android新手,對AndroidManifest.xml中的權限的保護級別「簽名」有疑問。關於Android權限和簽名保護級別

Android的關於「簽名」保護級別參考文件規定:

只有系統補助,如果請求應用程序 與相同的證書作爲申報 許可申請簽署的許可。如果證書匹配,系統會自動授予權限而不通知用戶或要求用戶明確批准 。

這意味着具有保護級別「簽名」的權限不能用於普通應用程序,只能用於Android Dev Team。

我想知道的是,Android電子市場或其他網站上有多少應用程序可以擁有這些權限?就像一個用於錄製調用的應用程序除了具有其他權限之外還有android.permission.DEVICE_POWER。安裝時,Android系統是否真的授予此應用程序的此權限?

當我試圖使用許可 「READ_INPUT_STATE」(2.2新)我在logcat中出現以下錯誤:

9月6日至28日:28:34.943:WARN/PackageManager(60):未授予權限android.permission.READ_INPUT_STATE打包com.example.wheredoyoulive(protectionLevel = 2 flags = 0x8444)

保護級別爲「SignatureOrSystem」的權限也是如此。除了其他權限之外,還有一個調用者應用程序具有CALL_PRIVILEGED權限。

請幫助我,並清除我的疑惑。

問候

阿布舍克

回答

4

我相信「簽名」權限級別的目的是爲了兩個應用程序由同一個開發商能夠在不打擾用戶無縫地共享數據。 READ_INPUT_STATE權限不打算在應用程序中使用:

允許應用程序檢索鍵和開關的當前狀態。 這僅供系統使用。

http://developer.android.com/reference/android/Manifest.permission.html#READ_INPUT_STATE

+0

感謝您的回覆。 在您提到的情況下,開發人員必須創建一個新的「自定義權限」,以便將保護級別提供的設施充分利用到我的應用程序中。 我向我的示例應用程序授予了「READ_INPUT_STATE」權限,以檢查如果我授予簽名級別權​​限會發生什麼情況。 – tandon16 2010-06-28 05:44:23

+0

好的,你的問題解決了嗎? – Computerish 2010-06-28 14:35:45

+0

我對「簽名」保護級別有些懷疑。通過進行上面的討論,我們可以得出結論:沒有第三方應用程序將被授予保護級別爲「Signature」或「SignatureOrSystem」的權限? 我原來的問題是: 「我想知道的是Android Market或其他網站上有多少應用程序可以擁有這些權限?就像一個用於錄製調用的應用程序除了其他的還有android.permission.DEVICE_POWER權限,安裝時Android系統真的授予這個應用程序的這個權限嗎?「 – tandon16 2010-06-29 02:43:34

0

Facebook主頁使用此,

一旦你安裝它,你會發現,它不要求任何權限,但明確要求Facebook的應用程序進行安裝,這使系統可以通過代理Facebook應用程序授予它必要的權限。

通常發生的事情是Facebook應用程序具有其他應用程序讀取您的狀態和新聞饋送的廣告設施,通常這些應用程序需要明確請求使用它們的權限,如果它們是在不同的證書或私鑰下簽名的。