android-如果用户未授予WRITE_EXTERNAL_STORAGE权限,则关闭应用 [英] android - close app if user not granting WRITE_EXTERNAL_STORAGE permission

查看:296
本文介绍了android-如果用户未授予WRITE_EXTERNAL_STORAGE权限,则关闭应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在android 6或更高版本中,当用户首次打开应用时要求他获得一些许可 如果他不允许,则退出应用程序

in android 6 or above when user open app first time ask him for some permission if he dont allow then exit app

我的应用需要某些必不可少的权限才能读写外部存储,如何实现此目的

some must required permission for my app is read and write to external storage, how to achieve this

我尝试过

if (Build.VERSION.SDK_INT >= 23) {
                if (ContextCompat.checkSelfPermission(LoginActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
                        != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(LoginActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE)
                        != PackageManager.PERMISSION_GRANTED) {
                    ActivityCompat.requestPermissions(LoginActivity.this,
                            new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE},
                            1);
                } else {
                    //do something
                }
            } else {
                    //do something
            }

推荐答案

使用@G的建议.布里斯达-里恩

using suggestion from @G. Brisida - Lince

我解决了这个问题,如果其他人需要同样的东西,我正在这里写我的答案,

i solved it and i am writing my answer here for other peoples if they need same thing,

我在MainActivity中编写的所有代码:

this all code i write in MainActivity:

    if(Build.VERSION.SDK_INT >= 23)
            {
                if (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE)
                                                        != PackageManager.PERMISSION_GRANTED ||
                    ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE)
                                                        != PackageManager.PERMISSION_GRANTED)
                {
     ActivityCompat.requestPermissions(MainActivity.this,
                                new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE},
                                1);
    }
                else
                {
                    //do something
                }
            }
}

这是重写方法onRequestPermissionsResult:

and this is override method onRequestPermissionsResult:

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        switch(requestCode)
        {
            case 1:
                if (grantResults.length > 0  && grantResults[0] == PackageManager.PERMISSION_GRANTED)
                {
                     // i am creating folder in external storage here
                 File create_dir=new File(Environment.getExternalStorageDirectory()+"/uca/");

                 Toast.makeText(this,"creating",Toast.LENGTH_LONG).show();
                 create_dir.mkdirs();

                }
                else
                {
                    closeNow();
                }
                break;
        }
    }

现在关闭了:

private void closeNow() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
        {
            finishAffinity();
        }

        else
        {
            finish();
        }
    }

这篇关于android-如果用户未授予WRITE_EXTERNAL_STORAGE权限,则关闭应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆