2014-03-05 99 views
3

在android中,每個應用程序對其可以訪問的資源都有一定的權限。系統如何確定哪個應用發送請求並檢查它是否具有適當的權限?系統如何識別哪個應用正在發送請求?

例如: 應用程序調用從系統獲取GPS位置的getLocation() 系統如何知道哪個應用程序調用了該應用程序,以及它如何檢查應用程序權限?

回答

1

有一個Linux identity(又名userID)與每個應用程序相關聯。 Android在安裝時將此用戶標識分配給應用程序。該用戶ID在該特定設備上的應用生存期內保持不變。此外,每個程序包都在其自己的進程中運行,因此當Android應用程序知道執行調用的進程以及誰是擁有該進程的Linux用戶(即應用程序)的應用程序(例如getLocation())時會進行調用。

您還應該檢查PackageManager,這是一種針對這些類型功能的API(否則特定於OS)。