2016-08-06 13 views
1

私はアンドロイド6.0の場所に別の問題があります。Android 6.0 api 23 - 許可を得た後、私の位置はヌルです

Android 6.0のアクセス許可の公式ガイドを読んでいますが、私の位置はnullですが、コードがブロックされているようです。

これはOnCreateの方法である:

if (Build.VERSION.SDK_INT >= 23) { //CONTROLLO PER ANDROID 6.0 O SUPERIORE 
     int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION); 

     if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 

      if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
        Manifest.permission.ACCESS_FINE_LOCATION)) { 
      } else { 
       ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
         MY_PERMISSIONS_ACCESS_FINE_LOCATION); 
      } 
     } 
    }else{ 
     Log.d("ANDROID","ANDROID SENZA FRONZOLI"); 
     //dA QUI IN POI MAIN STANDARD 
    } 

そして、これはチェックパーミッションクラスです:

@Override 
public void onRequestPermissionsResult(int requestCode, 
             String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case MY_PERMISSIONS_ACCESS_FINE_LOCATION: { 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 


       Log.d("PERMESSI-fine", "PERMESSI OK"); 

       LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

       if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 

        ActivityCompat.requestPermissions(this, new String[] { android.Manifest.permission.ACCESS_FINE_LOCATION }, 
          MY_PERMISSIONS_ACCESS_FINE_LOCATION); 
       } 

        Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

        if (location != null) { 
         double longitude = location.getLongitude(); 
         double latitude = location.getLatitude(); 

         Log.d("GPS-PROVIDER", String.valueOf(longitude)); 
         Log.d("GPS-PROVIDER", String.valueOf(latitude)); 

         // Toast.makeText(MainActivity.this, "GPS OK", Toast.LENGTH_SHORT).show(); 
        }else{ 
         Log.d("GPS","NIENTE ZONA VUOTA"); 
         Log.d("GPS", String.valueOf(location)); 
        } 



      } else { 


       Log.d("PERMESSI-fine","PERMESSE NO"); 
      } 
      return; 
     } 

     // other 'case' lines to check for other 
     // permissions this app might request 
    } 
} 

コードがエラー、簡単な何も与えていません! nullオブジェクトです。今私はアンドロイド6.0エミュレータを使用しています。私はこのosバージョンでは実際のデバイスを持っていません。

私を助けてください。

答えて

1

エミュレータにはGPSが搭載されていないため、位置情報プロバイダは場所や場所を取得できません.GPSデータを追加する必要があります。 follow the linkまたはandroid.developer source

+0

私はあなたのエミュレータでgoogleのapiを使用していることを確認してください私はKO –

+0

を私に与える、エミュレータの拡張制御を使用して座標を挿入する座標を挿入する –

関連する問題