0
我嘗試打開棒棒糖設備中的gps位置(不是模擬器)。我寫了實時權限碼,但沒有正常工作。這是我的源碼:如何打開棒棒糖中的位置或獲取當前位置
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (ActivityCompat.checkSelfPermission(this, permissions[0]) == PackageManager.PERMISSION_GRANTED) {
askForGPS();
Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
}
}
private void askForGPS(){
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(30 * 1000);
mLocationRequest.setFastestInterval(5 * 1000);
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(mLocationRequest);
builder.setAlwaysShow(true);
result = LocationServices.SettingsApi.checkLocationSettings(client, builder.build());
result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
@Override
public void onResult(LocationSettingsResult result) {
final Status status = result.getStatus();
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
break;
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
try {
status.startResolutionForResult(MainActivity.this, GPS_SETTINGS);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
break;
}
}
});
}
private void askForPermission(String permission, Integer requestCode) {
if (ContextCompat.checkSelfPermission(MainActivity.this, permission) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permission)) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode);
} else {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode);
}
} else {
Toast.makeText(this, "" + permission + " is already granted.", Toast.LENGTH_SHORT).show();
}
}
在按鈕單擊我試圖問這樣的權限。
askForPermission(Manifest.permission.ACCESS_FINE_LOCATION,LOCATION);
當我跑我的應用程序,我不能顯示alertDialog而無法打開的位置。我不知道,但表示該吐司消息程序「已經理所當然的。」 我的askForPermission方法不能正常工作。我的問題是,我如何打開具有實時權限的GPS並獲取當前位置?
public void getCurrenctLocation(Location location)
{
Log.e("Current lang", location.getLatitude()+"");
Log.e("Current long", location.getLongitude()+"");
}
如何以及在哪裏可以使用我的getCurrenctLocation方法? 感謝
感謝您的關注。如何,我可以使用getCurrenctLocation方法GPS後,檢查當前位置已打開? @tahsinRupam – BekaKK
您可以使用getLastLocation /位置更改偵聽器獲取位置 – tahsinRupam
是否已修復權限問題?如果它起作用,您可以將其標記爲已接受 – tahsinRupam