在android中,每个应用都拥有对其可以访问的资源的某些权限。系统如何确定哪个应用程序正在发送请求并检查它是否具有相应的权限?
例如为: 应用程序调用getLocation()从系统获取GPS位置 系统如何知道哪个应用调用了这个以及如何检查应用权限?
答案 0 :(得分:1)
每个应用都有Linux identity(又名userID)。 Android会在安装时将此userID分配给应用程序。此userID在该特定设备上的应用程序生命周期内保持不变。此外,每个包都在自己的进程中运行,因此当应用程序进行调用(如getLocation()
)时,Android知道执行调用的进程以及拥有该进程的Linux用户(即应用程序)
您还应该检查PackageManager,这是一种超过这些功能的API(特别是操作系统)。