我已经看到了问题 Can you request permissions synchronously in Android Marshmallow (API 23)'s runtime permissions model? 。答案是否定的。
因此,我添加了如下代码(简化版):
public class MyActivity ... {
private boolean hasGotPermissionRequestResult = false;
@Override
public void onCreate(...) {
if (ContextCompat.checkSelfPermission(...) == PackageManager.PERMISSION_DENIED) {
ActivityCompat.requestPermission(...);
while (!hasGotPermissionRequestResult) {}
}
}
@Override
public void onRequestPermissionResult(...) {
// whether granted or not
hasGotPermissionRequestResult = true;
}
}
但是,我不确定我的方法是否安全和有效。
答案 0 :(得分:0)
嗯,你想要实现的目标是不可能的,但有几种方法可以解决这个问题:
permission
时触发您要调用的方法。permission
非常重要,如果没有它,您的应用就不会function
,请使用受过良好教育的屏幕告诉用户为什么你想在一个介绍屏幕中使用这个permission
。 我为这种情况创建了一个库,其中library
为您简化了Permissions
,它也可以用作具有简介的单独Activity
的展位到你的permission
。你可以在Github中查看PermissionHelper Github