【发布时间】:2017-03-09 04:34:06
【问题描述】:
我已在初始屏幕上将此授予 Req Multiple 权限
public class Main_MulPer extends Activity {
public static final int R_PERM = 321;
Context context = this;
public static boolean hasPermissions(Context context, String... permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rcssa);
int PERMISSION_ALL = 1;
String[] PERMISSIONS = {Manifest.permission.CAMERA,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.INTERNET,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.NFC,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
if (!hasPermissions(this, PERMISSIONS)) {
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
Main_MulPer.this.finish();
Intent ss = new Intent(Main_MulPer.this, Main_acti.class);
ss.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
ss.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ss.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
ss.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(ss);
} else {
if (!hasPermissions(this, PERMISSIONS)) ;
{
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Main_MulPer.this.finish();
Intent i = new Intent(Main_MulPer.this, Splash_two.class);
startActivity(i);
}
}, 3000);
}
}
}
}
所以这里我的问题是它一次要求两个权限......
如果我尝试允许他们转移到另一个活动...所以我已经给出了类似的 3 个活动,每个活动有 2 个权限..
但是由于 Handler 开启了新的活动.. 然后我删除了延迟处理程序......现在它打开了最后一个活动......直接......
任何人都可以建议我如何在所有权限后启动主要活动... 未经许可它应该退出应用程序...请帮助我
更新
Insted of Multiple permissions 我已经拆分了 3 个活动,每个活动有两个权限...但是在这里它应该在获得权限后转到下一个活动但是每次前两个活动权限缺失时它都会转到最后一个活动 所以我需要退出应用程序并给他们...
我只需要未经许可不要移动到下一个屏幕
任何人都可以在获得许可后建议我只进行下一个活动....
【问题讨论】:
-
这是一个非常糟糕的方法,你应该只在用户非常清楚你为什么需要它们时才请求权限(即他们点击相机,它要求相机许可),做不建议其他任何事情。此外,正如事后的想法,您永远不应该仅仅因为未授予权限而批量请求权限,因为拒绝先前授予的权限将自动终止相关应用程序
-
但是我的应用程序是商业的,所以我一次性全部提供了......因为一旦用户登录它就会运行几乎 24 小时......所以每次询问都是非常负担......如果我每次都给它一个不好的方法....
-
商业与否无关紧要,与它完全无关。它不会每次都询问,我非常建议您正确阅读有关权限的文档,因为它不会每次都询问用户,除非他们还没有授予权限
-
“如果我每次都给它一个不好的方法”..完全不同意这一点..运行时权限背后的想法是让用户有资格安装,而无需在安装时授予所有权限。只有当用户需要特定功能时,我们才需要请求许可。实际上,您应该每次都询问(意味着检查用户是否有权访问某项功能)。如果您不检查该权限并且用户手动禁用了权限,您的应用将在 6.0+ 中崩溃。
-
在我的活动中,我有很多事情要请求权限...我不知道哪个先...所以我给出了这样的,,,如果可能的话以这种方式回答...我不选择其他方式,.,,因为这个应用程序在 android 5 中运行良好,但由于运行时权限它不工作所以客户端不接受它......
标签: android runtime-permissions