【发布时间】:2016-11-18 13:16:42
【问题描述】:
我有一个java类,代码如下。
public class PermisssionAction {
public static void requestPermission(Activity activity, String permission) {
if (ContextCompat.checkSelfPermission(activity, permission)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{permission}, 0);
}
}
}
现在我在 mainactivity 中调用了它的方法来获取应用程序的权限,如下所示。
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
PermisssionAction.requestPermission(this, Manifest.permission.READ_PHONE_STATE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
PermisssionAction.requestPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
}
PermisssionAction.requestPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
PermisssionAction.requestPermission(this, Manifest.permission.READ_CONTACTS);
PermisssionAction.requestPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION);
PermisssionAction.requestPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
PermisssionAction.requestPermission(this, Manifest.permission.READ_SMS);
PermisssionAction.requestPermission(this, Manifest.permission.INTERNET);
PermisssionAction.requestPermission(this, Manifest.permission.BLUETOOTH);
PermisssionAction.requestPermission(this, Manifest.permission.ACCESS_WIFI_STATE);
PermisssionAction.requestPermission(this, Manifest.permission.SEND_SMS);
Intent startupintent = new Intent(MainActivity.this, StartupActivity.class);
startActivity(startupintent);
finish();
}
}
现在我无法理解为什么它在真正的移动设备上运行应用程序时只请求一个权限,而在模拟器上一次请求所有权限。 还假设应用程序第一次获得了位置权限,当你再次打开应用程序时,它会在真实设备上询问另一个待处理的权限,依此类推。你能指导一下吗?
【问题讨论】:
标签: java android permissions