2016-09-05 10 views
0

Android 6.0以降を実行しているときに必要な危険なアクセス権をリクエストする必要がありますか?次の危険なアクセス権を要求しましたが、Android 6.0(APIレベル23)でのアクセス権のリクエスト

premissions

public static final String[] PERMISSIONS = new String[]{ 
     android.Manifest.permission.CALL_PHONE, 
     android.Manifest.permission.WRITE_EXTERNAL_STORAGE, 
     android.Manifest.permission.READ_EXTERNAL_STORAGE, 
     android.Manifest.permission.ACCESS_COARSE_LOCATION, 
     android.Manifest.permission.ACCESS_FINE_LOCATION, 
     android.Manifest.permission.READ_PHONE_STATE, 
     android.Manifest.permission.WRITE_SETTINGS, 
     android.Manifest.permission.GET_ACCOUNTS, 
     android.Manifest.permission.CAMERA 
}; 

ダイアログ

1.Allow作成し、電話を管理するためのアプリ?

2.お使いの端末の写真、メディア、ファイルにアクセスするアプリを許可しますか?

3.このデバイスの場所にアクセスするには、アプリを許可しますか?

4.あなたの連絡先にアクセスするようにアプリを許可しますか?

私はそのようなandroid.Manifest.permission.READ_PHONE_STATE、 android.Manifest.permission.WRITE_SETTINGS、 android.Manifest.permission.GET_ACCOUNTS、 android.Manifest.permission.CAMERA、コードやシステムでもないようなアクセス許可を得るカント設定します。

+0

はないすべての権限は、Androidマニフェストで言及されることになっていますか? – EdmDroid

+0

間違いはありますか? – Nilabja

+0

@Motee権限グループのコンセプトがあるため、ダイアログボックスが4つしか表示されません。たとえば、READ権限とWRITE権限を1つのグループにまとめることができます。 – dex

答えて

0

特殊なアクセス権

ノーマルと 危険なパーミッションのように動作していない権限がいくつかあります。 WRITE_SETTINGSは特に機密扱いの なので、ほとんどのアプリでは使用しないでください。アプリ にこれらのアクセス許可が必要な場合は、 マニフェストでアクセス許可を宣言し、ユーザーの承認を求めるインテントを送信する必要があります。 システムは、詳細な管理画面 をユーザに表示することによって、その意図に応答します。

デモ

public class MainActivity extends AppCompatActivity { 

    Context context; 
    TextView textView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     context = this; 
     textView = (TextView) findViewById(R.id.foodName); 
     textView.setText(getResources().getText(R.string.txt_name)); 
     textView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       boolean result = true; 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
        result = Settings.System.canWrite(context); 
        Log.d("TAG", "Can Write Settings: " + result); 
        if (result) { 
         Toast.makeText(context, "Write allowed :-)", Toast.LENGTH_LONG).show(); 
        } else { 
         Toast.makeText(context, "Write not allowed :-(", Toast.LENGTH_LONG).show(); 
         Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS); 
         intent.setData(Uri.parse("package:" + context.getPackageName())); 
         startActivity(intent); 
        } 
       } 
      } 
     }); 
    } 
} 
+0

あなたの答えをありがとうございます。許可WRITE_SETTINGSに対処することは良い考えです。私はまだ疑問があります。私は同じ方法で許可カメラを要求する必要がありますか? – Motee

+0

あなたは伝統的な方法としてカメラの許可を要求する必要があります?とにかく私の答えがあなたを助けてくれたら、あなたはマークを付けて、感謝の幸せなコーディングを投票することができます:) –

関連する問題