1

他のアンドロイドですべて正常に動作しますが、6.0ではMyLocationButtonが何もしません。ここに私のコードAndroid:Android 6.0では私の位置ボタンが機能しません

googleMap.getUiSettings().setMyLocationButtonEnabled(true); 
googleMap.setMyLocationEnabled(true); 
googleMap 
       .setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() { 

        @Override 
        public boolean onMyLocationButtonClick() { 

         Location location = googleMap.getMyLocation(); 
         if (location == null) { 
          checkLocationSettings(); 
          return true; 
         } 

         LatLng locationLatLng = new LatLng(location 
           .getLatitude(), location.getLongitude()); 
         setMarkerToMap(locationLatLng); 
         //other staff 
         return false; 
}); 

protected void checkLocationSettings() { 
     PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi 
       .checkLocationSettings(mGoogleApiClient, 
         mLocationSettingsRequest); 
     result.setResultCallback(this); 
    } 

@Override 
    public void onResult(LocationSettingsResult locationSettingsResult) { 
     final Status status = locationSettingsResult.getStatus(); 
     switch (status.getStatusCode()) { 
      case LocationSettingsStatusCodes.SUCCESS: 

       break; 
      case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: 
       try { 
        status.startResolutionForResult(this, REQUEST_CHECK_SETTINGS); 
       } catch (IntentSender.SendIntentException e) { 

       } 
       break; 

     } 
    } 

この問題の原因は何ですか?私はそれが(Android 6.0の)新しい権限で何かをしなければならないと思うが、私はそれを理解できない。

+0

あなたはOnClickListener内部ACCESS_FINE_LOCATION権限をチェックしようとしたことがありますか? – noktigula

答えて

0

これらのリンクを参照し、実行時にアクセス許可を追加してください。

https://blog.xamarin.com/requesting-runtime-permissions-in-android- マシュマロ/

またはこれら

は(verifyStoragePermissions()メソッドを作成し、onCreateViewに呼び出されてみてください)活動の

private static String[] PERMISSIONS_STORAGE = { 
    Manifest.Permission.AccessCoarseLocation, 
    Manifest.Permission.AccessFineLocation}; 
public static void verifyStoragePermissions(Activity activity) 
int permission = ActivityCompat.checkSelfPermission(activity, 
      Manifest.permission.AccessCoarseLocation); 
if (permission != PackageManager.PERMISSION_GRANTED) 
ActivityCompat.requestPermissions(
      activity, 
      PERMISSIONS_STORAGE, 
      1001 // pass any request code 
    ); 
} 
関連する問題