从Application类请求权限

时间:2016-07-06 08:04:58

标签: android android-activity android-permissions android-applicationinfo

根据新的Android文档,为了收集某些数据,我需要请求许可。所以我这样做:

@Override
public void onCreate() {
    super.onCreate();
    ...
    ...
    if (PermissionUtility.isPermitted(applicationContext, android.Manifest.permission.READ_SMS)) {
        userNumber = getUserPhoneNumber();
    } else {
        ActivityCompat.requestPermissions(activity,
                new String[]{android.Manifest.permission.READ_SMS},
                Constants.REQUEST_CODE_READ_SMS);
    }
    ...
    ...
}

问题是我在班级public class MyApplication extends Application{...}这样做,所以activity在这里不可用。有没有办法在这个课程中要求权限或者传递活动?

1 个答案:

答案 0 :(得分:8)

request Permission无法Application。你总是需要一个activity

调用Application时,不会初始化任何活动。

您可以参考这个答案,为什么我们需要一个活动来获取请求权限:

Android: ActivityCompat.requestPermissions requires activity and not context