0
このコードはHTC One m8で動作しますが、他のデバイスでは動作しません。LocationServices.FusedLocationApi.getLastLocationはSamsungの携帯電話ネットワークでは機能しません
private Location getLocation() {
// If Google Play Services is available
if (servicesConnected()) {
// Get the current location
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
}
return LocationServices.FusedLocationApi.getLastLocation(GoogleApiClient);
} else{
return null;
}
}
私はACCESS_COARSE_LOCATIONの許可が受け入れられるかどうかわかりません。ここに私の許可リストコード
private void insertDummyContactWrapper() {
List<String> permissionsNeeded = new ArrayList<String>();
final List<String> permissionsList = new ArrayList<String>();
if (!addPermission(permissionsList, Manifest.permission.ACCESS_FINE_LOCATION) && !addPermission(permissionsList,Manifest.permission.ACCESS_COARSE_LOCATION))
permissionsNeeded.add("Location");
if (!addPermission(permissionsList, Manifest.permission.READ_CONTACTS) && !addPermission(permissionsList,Manifest.permission.WRITE_CONTACTS))
permissionsNeeded.add("Contacts");
if (!addPermission(permissionsList, Manifest.permission.READ_EXTERNAL_STORAGE) && !addPermission(permissionsList,Manifest.permission.WRITE_EXTERNAL_STORAGE))
permissionsNeeded.add("Storage");
if (permissionsList.size() > 0) {
if (permissionsNeeded.size() > 0) {
// Need Rationale
String message = "You need to grant access to " + permissionsNeeded.get(0);
for (int i = 1; i < permissionsNeeded.size(); i++)
message = message + ", " + permissionsNeeded.get(i);
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onClick(DialogInterface dialog, int which) {
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
}
});
return;
}
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
return;
}
}
それはGPSをオンにすると位置を取得しますが、GPSが利用できない場合、それはサムスンのデバイス上でクラッシュしています。 ACCESS_COARSE_LOCATIONの許可がユーザーから受け入れられるかどうかを知りたいだけでした。
Samsungデバイスでは動作しませんでした。 SamsungのデバイスがLocationListenerで動作しないのですか? – Savita