我有一個應用程序說,安裝時啓用所有權限。另一個應用程序Say B沒有權限並希望獲得該權限。 B可以與A溝通,以便A可以將其許可轉讓給B.應用程序是否可以將其權限授予Android中的其他應用程序?
PLS回覆,我被卡在這裏。我想動態地獲得一些權限。這是最好的主意還是其他想法?
我有一個應用程序說,安裝時啓用所有權限。另一個應用程序Say B沒有權限並希望獲得該權限。 B可以與A溝通,以便A可以將其許可轉讓給B.應用程序是否可以將其權限授予Android中的其他應用程序?
PLS回覆,我被卡在這裏。我想動態地獲得一些權限。這是最好的主意還是其他想法?
這將是非常的安全,不要你想,如果一個應用程序可以給另一個應用程序的任何權限...
一些惡人將只需要說服你安裝一個自己的應用程序;然後,無論您安裝了哪個其他B應用程序,B應用程序在安裝(稍後將由A授予)都不需要任何特定權限 - 而B仍然可以執行您設備上的任何內容?
我當然希望你所要求的是不可能的;-)
您的應用程序可以提供一些內容提供商獲取信息。應用程序B可以使用A的內容提供者獲得信息。 http://developer.android.com/guide/topics/providers/content-providers.html
但不知何故,這聽起來像你想做一些邪惡的事情。如果您想獲得更多信息,請提供更多關於您需要這樣做的信息!
據我所知,應用程序不一定會授予其他應用程序的權限,但AppB可以從AppA繼承權限,如果您是這兩個應用程序的開發人員。如果AppA和AppB在其清單中聲明瞭相同的sharedUserId值(android:sharedUserId =「xyz」),並且AppA和AppB都使用相同的簽名進行簽名,那麼Android會認爲它們是相同的應用程序,只要權限不變。因此,AppB可以在設備上存在,例如「perm1」未經許可。然後,AppA可以安裝「perm1」。如果AppA和AppB具有相同的sharedUserId和簽名,那麼當安裝AppA時,AppB將被「授予」「perm1」。
我剛纔沒有測試過,但我知道它曾經工作過(截至一年前)。
是的,這是可能的使用PendingIntents迂迴的方式。這不是一個確切的代碼片段,但應該給你的想法:
你不能傳遞權限,但你可以傳遞能力來執行某些行動從A到B.假設你想要傳遞執行一定的能力ACTION
。
A需要創建未決意圖:
Intent intent = new Intent(ACTION);
PendingIntent pIntent = PendingIntent.getActivity(context, requestCode, intent, flags);
阿通過編組未決意圖
Intent intent = new Intent(context, B.class);
intent.putExtra("pendingIntent", pIntent);
其發送到乙
在B點,我們反序列化掛起的意圖,我們可以用它來進行限制ACTION
PendingIntent pIntent = intent.getExtra("pendingIntent");
pIntent.send();
我不想做任何壞事。我有興趣創建一個授予動態權限的系統。因此,任何需要許可的應用程序都可以向我的應用程序發送信號,在那裏我會要求用戶身份驗證和一些到期機制,以便在一段時間後覆蓋給定的權限。如果用戶同意我會授予我請求的應用程序的權限。 – scari 2011-04-03 18:29:08
這就是我想要做的...請幫助 – scari 2011-04-03 18:29:31
有沒有什麼辦法可以在我的應用程序中啓用所有權限的情況下,執行'未經許可'應用程序所建議的工作。 像執行處理程序到該應用程序中定義的函數? ( 如我錯了請糾正我 )。 或者你可以請建議任何代碼或文檔,我可以找到在運行時android如何處理權限請求。 (不是Manifest.xml)(真正的android源碼) – scari 2011-04-04 09:14:41