android - 系统在没有用户操作的情况下授予权限

标签 android android-permissions android-6.0-marshmallow runtime-permissions

我遇到了一个奇怪的问题。我关注了this教程以便在运行时为我构建的应用程序请求权限。问题是,即使我检查设备是否使用 Android M 并且我在运行时请求权限,它也不会显示对话框。

代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_configuration);
        spinner = (Spinner)findViewById(R.id.database_selection_spinner);
        button = (Button)findViewById(R.id.proceedBtn);
        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
           if (ContextCompat.checkSelfPermission(ConfigurationActivity.this, Manifest.permission.INTERNET) == PackageManager.PERMISSION_GRANTED){
               accessWebService();
           }else {
               if (shouldShowRequestPermissionRationale(Manifest.permission.INTERNET)){
                   StringGenerator.showToast(ConfigurationActivity.this, "Internet Permission needs to be granted");
               }

               requestPermissions(new String[]{Manifest.permission.INTERNET}, AppConstants.PERMISSION_REQ_CODE);

           }
        }else {
            accessWebService();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == AppConstants.PERMISSION_REQ_CODE){
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
                accessWebService();
            }else {
                StringGenerator.showToast(ConfigurationActivity.this, "LOL");
            }
        }else {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

accessWebService:

private void accessWebService(){
        FetchDataTask task = new FetchDataTask();
        task.execute(AppConstants.DATABASE_INFO_URL);
    }

list :

<uses-permission-sdk-23 android:name="android.permission.INTERNET"/>

结果如下:

enter image description here

并且没有请求权限:

enter image description here

有什么建议吗?

最佳答案

上网是一种“普通权限”,是系统授予的,不需要用户询问。在 documentation 中查看更多信息.

将仅要求用户提供 dangerous permissions .

关于android - 系统在没有用户操作的情况下授予权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34528318/

相关文章:

android - Android 类 BaseAdapter 中方法 getItem 和 getItemId 的 Intent 是什么?

android - 微调器内部填充在 Android 6.0.1 上更大

android - 是否可以用 Android M 替换 Android N 的 ART?

java - 快速修复字符串开关后的 Android 错误

Android Marquee 等待时长

android studio 3.0.1 显示无法合并 dex 为什么?

android - 什么是打瞌睡模式计时?

android - 如何修复 Android Manifest 文件中的错误 "Unsupported type ' uses-permission'"

android - 如何在安卓平板电脑中隐藏底部系统栏

android - 系统操作/Intent 是否以特定权限级别发送?