【问题标题】:How to add Nougat Permission in below Code? [duplicate]如何在下面的代码中添加 Nougat 权限? [复制]
【发布时间】:2017-12-09 12:39:49
【问题描述】:

此代码可在所有低于 7.0 版本的 android 上运行,但不能在 Nougat 上运行。当我按下按钮时,它不会进入下一个活动?请告诉我们如何在下面的代码中添加 Nougat 权限?

currentlocation.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        currentlocation.startAnimation(animTranslate);
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
            if (ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.READ_EXTERNAL_STORAGE)
                    != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(Front.this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_PERMISSON_SORAGE);

            }
        } else {
            if (interstitialAd.isLoaded()) {
                interstitialAd.show();
            }
            Intent iu = new Intent(Front.this, MainActivity.class);
            startActivity(iu);
        }
    }
});
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == REQUEST_PERMISSON_SORAGE
            && grantResults.length > 0
            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        Intent i = new Intent(Front.this, MainActivity.class);
        startActivity(i);
        //finish();
    } else {
        Toast.makeText(this, "Please Allow permision to use App .", Toast.LENGTH_SHORT).show();
        finish();
    }
}

这是我的清单,显示了添加的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

【问题讨论】:

  • 您是否在清单中声明了权限:如果是,请编辑您的问题并添加您是否已完成
  • 这些权限已添加到我的清单文件中。 HadjKhelil Nawrez

标签: java android android-permissions


【解决方案1】:

首先,权限系统从 API 23 及以上开始,所以代码应该是:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

其次,还有更危险的权限是你没有申请的:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ---> You did request this
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

您只请求READ_EXTERNAL_STORAGE。要求其余的。像使用 READ_EXTERNAL_STORAGE 一样将它们添加到 String 数组中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 2017-03-20
    • 2015-07-18
    • 2019-07-29
    • 2018-11-15
    • 2015-09-23
    • 2015-01-06
    • 2020-04-22
    相关资源
    最近更新 更多