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的其他部分複製代碼.... !!!