gpt4 book ai didi

android - 如何确定为什么我的 Android 应用程序需要某些权限?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:33 25 4
gpt4 key购买 nike

假设我接管了一个 Android 应用程序的开发,我的老板问我为什么我们的应用程序需要某些权限才能显示给在 Android Market 上购买该应用程序的用户。

是否可以使用任何工具或技巧来确定触发每个权限的代码,以便弄清楚为什么我们的应用在功能上需要这些权限?特别是,我对这些权限感兴趣:

  • 电话 - 读取电话状态和身份

  • 系统工具 - 检索正在运行的应用程序 - 允许应用程序检索有关当前和最近运行的任务的信息,可能允许恶意应用程序发现有关其他应用程序的私有(private)信息。

该应用程序是一个 GPS 跟踪应用程序,可能需要此权限的原因并不明显。

即使您不能告诉我如何直接分析代码以找出答案,如果能获得有关为什么可能需要此权限的任何提示也会很有帮助。

最佳答案

下面是我将如何追踪这些。

第 1 步 - 找到在您的 AndroidManifest.xml 中声明的 list 权限

基本上所有东西都在<uses-permission />里面标签例如:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

第 2 步 - 在 developer.android.com 中搜索使用这些权限的类

让我们以 READ_PHONE_STATE 为例,目标是找到哪些包需要此权限。在开发门户上简单搜索“READ_PHONE_STATE”开始我们的搜索,我们在这里寻找类,在前 5 个搜索结果中我看到以下类:

  • 电话经理
  • 电话状态监听器

单击类并获取它们的包名称:

  • android.telephony.TelephonyManager
  • android.telephony.PhoneStateListener

第 3 步在您的项目中查找导入这些包的类

一个简单的 grep 就可以,或者在 eclipse 中按 Ctrl-H,文件搜索 -> 包含文本

第 4 步注释掉导入,看看有什么问题

这些是可能需要许可的候选者。通过查看开发门户以验证该方法确实需要权限来确认有问题的方法。

最后,您应该可以告诉您的老板,READ_PHONE_STATE 是必需的,因为我们调用了函数 XYZ,它为我们提供了 UVW。

关于android - 如何确定为什么我的 Android 应用程序需要某些权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13059377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com