AndroidアプリケーションはAndroid 7.0権限要求を適応させる。
Android 6.0以下の場合、Androidアプリケーションに対する権限要求は、アプリケーションをインストールする際に、デフォルトで直接取得することです。しかし、Android 6.0および以上の場合、アプリケーション権限の取得にはより高い要求がある。アプリケーションは、関連する権限を取得してこそ正常に動作することができます。逆に、ユーザーに関連する権限が与えられていない場合は、アプリケーションは直接に終了したり、クラッシュしたりして、正常な実行ができません。
具体的には、下記の携帯電話の位置を取得し、携帯電話の読み書きメモリと携帯電話の状態権限の事例コードを参照してください。
具体的には、下記の携帯電話の位置を取得し、携帯電話の読み書きメモリと携帯電話の状態権限の事例コードを参照してください。
public class AppMainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// App
getPermissionToReadUserContacts();
}
//
private static final int READ_CONTACTS_REQUEST = 1;
//
public void getPermissionToReadUserContacts() {
/**
* 1) ContextCompat.chefkSelfPermission(), Context.permission
*
* 2) ( ) */
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
// , , ,
//
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) ||
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE) ||
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) {
//
Toast.makeText(this, " , ", Toast.LENGTH_SHORT).show();
}
// ,
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE},
READ_CONTACTS_REQUEST);
}
}
// requestPermissions()
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
//
if (requestCode == READ_CONTACTS_REQUEST) {
if (grantResults.length == 3 && grantResults[0] == PackageManager.PERMISSION_GRANTED
&& grantResults[1] == PackageManager.PERMISSION_GRANTED
&& grantResults[2] == PackageManager.PERMISSION_GRANTED) {
System.out.println(" ");
} else {
System.out.println(" ");
}
} else {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}
以上のAndroidアプリケーションはAndroid 7.0権限の要求に適合しています。詳細は小編が皆さんに共有している内容です。参考にしていただければ幸いです。どうぞよろしくお願いします。