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権限の要求に適合しています。詳細は小編が皆さんに共有している内容です。参考にしていただければ幸いです。どうぞよろしくお願いします。