は、明示的に権限を付与するようにユーザーに依頼する必要があります。マニフェストで宣言するだけでは不十分です。ドキュメント内
このarticleは新しいモデルの学習を始めるには絶好の場所ですが、私は簡単な要約を与えるでしょう。
ユーザーがいつでも取り消すことができますので、あなたが、権限が現在付与されているかどうかを確認する必要がある「危険な許可」が必要ですアクションを実行するたびに。
これはcheckSelfPermission
方法で行うことができます。
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
// We do not have this permission. Let's ask the user
}
あなたは、このような
PERMISSION_READ_STATE
は後でコールバックメソッドにチェックするためにあなたによって定義された定数の整数である
ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_READ_STATE);
として、requestPermissions
方法で許可を要求することができます。
次に、あなたの活動にonRequestPermissionsResult
をオーバーライドして、許可が付与されたかどうかを確認します。そうだった場合は、先に進み、危険な行動を実行することができます。
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSION_READ_STATE: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission granted!
// you may now do the action that requires this permission
} else {
// permission denied
}
return;
}
}
}
https://stackoverflow.com/questions/32635704/cant-get-the-permission – CommonsWare
申し訳ありませんが、サー私は再び-尋ねる再、そして答え –