【发布时间】:2015-11-25 03:41:06
【问题描述】:
我正在更新我的应用以使用新的 Android Marshmallow 权限框架,看起来用户在运行时授予 ACCESS_FINE_LOCATION 权限就足以让应用正常工作。我就是这样做的:
public static final String[] runtimePermissions = { permission.ACCESS_FINE_LOCATION };
public static final int LOCATION_PERMISSION_IDENTIFIER = 1;
在课堂上更进一步:
public static boolean checkConnectionPermission(final Context context) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
if (context.checkSelfPermission(permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
return true;
}
else {
((Activity) context).requestPermissions(runtimePermissions,
LOCATION_PERMISSION_IDENTIFIER);
return false;
}
}
// since in API levels below M the permission is granted on
// installation,
// it is considered a given that the permission has been granted since
// the
// app is running. So we return true by default
else {
return true;
}
}
我只是担心我忽略了一些可能在未来引起麻烦的事情(该应用程序即将投入生产)并出现安全异常。
我想我的终极问题是:授予 FINE_LOCATION 是否也会自动授予 COARSE_LOCATION?
【问题讨论】:
标签: android location android-permissions