在Noughat中未显示的运行时用户权限对话框

时间:2017-06-20 10:15:07

标签: java android

在我的应用程序运行时,应用程序权限未显示在对话框中,应用程序在Noughat中打开应用程序时崩溃,但它在Marshmallow和其他较少的API中工作正常。请为此问题提供快速解决方案。提前致谢

            @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lockscreen);
    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.PROCESS_OUTGOING_CALLS,Manifest.permission.CALL_PHONE,Manifest.permission.READ_CONTACTS,Manifest.permission.WRITE_CONTACTS,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE},1);       
 }
  @Override
  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode){
        case 1:
        {
            if(grantResults.length>0 && grantResults[0]== PackageManager.PERMISSION_GRANTED){
                int perm=1;
            }
            else {
                Toast.makeText(getApplicationContext(),"Permission denied",Toast.LENGTH_SHORT).show();
            }
        }
    }
}

我还在清单

中包含了用户权限标记
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CALL_PHONE" />

1 个答案:

答案 0 :(得分:0)

尝试使用此库

编译'com.vistrav:问:2.4'

然后请求不同的权限,如

Ask.on(本).forPermissions(android.Manifest.permission.WRITE_EXTERNAL_STORAGE,

android.Manifest.permission.READ_EXTERNAL_STORAGE,

android.Manifest.permission.CAMERA,

android.Manifest.permission.INTERNET,

android.Manifest.permission.ACCESS_NETWORK_STATE,

android.Manifest.permission.WAKE_LOCK,

Manifest.permission.READ_SMS)

。去();

这肯定会奏效。