2017-01-23 8 views
3

明らかに、MIUI OSはすでにマシュマロが行う前に独自のパーミッションシステムを実装しています。私は現在、API 21 [Android 5.0.2]に基づいたMIUIを使用するXiaomi Mi 4iのビデオ録画アプリをテストしています.MIUIのPermissions Managerではデフォルトで許可されていないRecord Audio権限が必要です。権限 - 実行時にMIUIを実行している電話機で、どのように要求し、変更しますか?

これまでのところ、私はアクセス権を変更するために管理してきた方法は、AlertDialogでOKボタンをクリックでアプリの権限マネージャ]ウィンドウにアクセスすることである:

isMIUI = MIUIUtils.isMIUI(); 
if(isMIUI) 
{ 
    AlertDialog.Builder adb = new AlertDialog.Builder(this); 
    adb.setMessage("If you intend to use the video recording feature, please enable the 'Record Audio' permission in the settings menu. You will be redirected there if you press OK.") 
     .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       Intent intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS"); 
       intent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity"); 
       intent.putExtra("extra_pkgname", "com.picmix.mobile"); 
       startActivity(intent); 
      } 
     }) 
     .setNegativeButton("CANCEL", null) 
     .create(); 
    adb.show(); 
} 

しかし、これはのために十分ではありません私。私はRecord Audio MIUI Permissions Managerでこのチェックを1回だけ実行するためにチェックされているかどうか確認する必要があります。

MIUI Permissions Managerで付与された権限またはプログラムに通知される権限を確認するにはどうすればよいですか?

答えて

-1
private boolean resourceCanBeAccessed() { 

     boolean response = true; 

     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
      if(ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) 
        == PackageManager.PERMISSION_DENIED) { 

       ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.RECORD_AUDIO}, 1); 
       response = false; 
      } 
     } 
     return response; 
    } 

リソースにアクセスする前に、このメソッドを呼び出すだけで済みます。このメソッドは、パーミッションが付与されている場合にtrueを返します。許可が与えられていない場合、許可を与えます

+1

Android 6.0(Marshmallow)でのみ動作します。 Xiaomi Mi 4iはAndroid 5.0.2(Lollipop)で識別され、このコードはマニフェストで定義されているすべてのものに対して真実を返します。 MIUIパーミッションマネージャーは、これ以上のものを複雑にします。 – Gensoukyou1337