我正在开发一个Marshmallow设备的应用程序.源代码不是由我编写的,项目本身也很大.我目前正在使应用程序在需要时请求权限.
问题是:如何在代码中找到应该请求权限的所有地方?我正在使用Android Studio.
编辑
有人建议将api更改为23,然后运行应用程序并查看崩溃的位置.问题是应用程序不会在每个地方崩溃.
例如,在没有权限的情况下运行此代码会使应用程序崩溃:
TelephonyManager manager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
Run Code Online (Sandbox Code Playgroud)
虽然这个只返回一个空数组,而不是崩溃.
final String[] SELF_PROJECTION = new String[]{
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,};
Cursor cursor = context.getContentResolver()
.query(ContactsContract.Profile.CONTENT_URI, SELF_PROJECTION, null, null, null);
Run Code Online (Sandbox Code Playgroud)
此外,Android Lint不会显示这些地方.我不确定它是否应该.