によって拒否することができる権限が必要です.... 私はこのコードを書く:myPermissionNeededMethodでコールは、私がアンドロイドで位置を取得する必要があるユーザー
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)
!=PackageManager.PERMISSION_GRANTED)
{
if(ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,Manifest.permission.ACCESS_FINE_LOCATION))
{
Toast.makeText(MainActivity.this,"Comment...",Toast.LENGTH_LONG).show();
}
else
{
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},1);
}
}
else
{
//Call whatever you want
myPermissionNeededMethod();
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case 1: {
if((grantResults.length>0) && grantResults[0]==PackageManager.PERMISSION_GRANTED)
myPermissionNeededMethod();
else{
// the user deny to giving permission so we ask him again or whatever we need to do !
}
return;
}
}
}
()私が書く:
public void myPermissionNeededMethod(){
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Location location= locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
が、もう一度私はユーザーによって拒否される可能性のあるエラーの呼び出しが必要です.... !!!! 私がmyPermissionNeededMethod()メソッドを使用できない場合、oncreateとonRequestPermissionsResultのelseセクションのコードをコピーする必要があります。