1
被拒绝,我需要在Android中获得位置.... 我写这篇文章的代码:)通话需要获得许可可以由用户
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;
}
}
}
在myPermissionNeededMethod
(我写:
public void myPermissionNeededMethod(){
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Location location= locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
但我再次收到错误的电话需要许可,可能会被用户拒绝.... !!!! 如果我不能使用myPermissionNeededMethod()方法,我应该在oncreate和onRequestPermissionsResult的其他部分复制代码.... !!!