2016-10-25 1 views
0

私は非常に新しいアンドロイドプログラマーで、現在Googleマップで遊んでいます。現時点では、私は現在の場所を地図上で見つけようとしています。私は理解するために苦労し、アクセス許可のポップアップを実装する必要がありますが、今私はポップアップが常にポップアップするという問題にしなければならない。だから私はそれがアクセスを許可するまでポップアップすると、アクセスを拒否するまで何度も何度もプロセスを繰り返すだけで消えてしまいます。申し訳ありませんが、これは簡単な質問ですが、私は本当に苦労しています。アンドロイドのアクセス許可を改ざんする

は、ここでは、コードです:任意の助け

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 

    static final int MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 

     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 


    /** 
    * Manipulates the map once available. 
    * This callback is triggered when the map is ready to be used. 
    * This is where we can add markers or lines, add listeners or move the camera. In this case, 
    * we just add a marker near Sydney, Australia. 
    * If Google Play services is not installed on the device, the user will be prompted to install 
    * it inside the SupportMapFragment. This method will only be triggered once the user has 
    * installed Google Play services and returned to the app. 
    */ 
    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 

     // Add a marker in Sydney and move the camera 
     LatLng Uni = new LatLng(53.767735, -0.368377); 
     mMap.addMarker(new MarkerOptions().position(Uni).title("Hull University")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLng(Uni)); 

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

     if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { 

      mMap.setMyLocationEnabled(true); 
     } 




    } 


    @Override 
    public void onRequestPermissionsResult(
      int requestCode, String[] permissions, int[] grantResults) { 

     switch (requestCode) { 
      case MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION: { 
       // If request is cancelled, the result arrays are empty. 
       if (grantResults.length > 0 
         && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
        Toast.makeText(this, 
          "Permission was granted", 
          Toast.LENGTH_LONG).show(); 
        return; 

       } else { 
        Toast.makeText(this, 
          "Permission denied", 
          Toast.LENGTH_LONG).show(); 
       } 
       return; 
      } 

     } 
    } 
} 

感謝。

答えて

3

希望これは

これを試してみてください助け:それは働いた

@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    // Add a marker in Sydney and move the camera 
    LatLng Uni = new LatLng(53.767735, -0.368377); 
    mMap.addMarker(new MarkerOptions().position(Uni).title("Hull University")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(Uni)); 

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 

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



    }else if(ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED){ 
     mMap.setMyLocationEnabled(true); 
    } 







} 

マニフェストファイルに必要な権限が含まれていることを確認してくださいあまりにも

<!-- Required to show current location --> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
+0

!ありがとうございました! – madaxehamster01

+0

あなたは受け入れられたとして答えをマークしてください。他の人はこの解決策の恩恵を受けるために@ madaxehamster01 – Ak9637

関連する問題