猿问

Android 位置权限代码无法正常工作

我编写了一个简单的代码,用于在运行时从用户那里获取位置权限。只有第一次它正常工作。之后,权限对话框根本不会出现。任何人都可以告诉我代码中缺少什么...


  public static final String FINE_LOCATION=Manifest.permission.ACCESS_FINE_LOCATION;

    public static final String COARSE_LOCATION=Manifest.permission.ACCESS_COARSE_LOCATION;

    private static final int LOCATION_PERMISSION_REQUEST_CODE=1234;

    private boolean mLocationPermissionGranted=false;


  protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_maps);


        getLocationPermission();

}

    public void initMap() {


        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()

                .findFragmentById(R.id.map);

        mapFragment.getMapAsync(this);

    }

    public void onMapReady(GoogleMap googleMap) {

        mMap = googleMap;

        Toast.makeText(this, "Map is ready", Toast.LENGTH_SHORT).show();

    }

 public void getLocationPermission(){

        String [] permissions={Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION};

        if(ContextCompat.checkSelfPermission(this.getApplicationContext(),FINE_LOCATION)==PackageManager.PERMISSION_GRANTED){

            if(ContextCompat.checkSelfPermission(this.getApplicationContext(),COARSE_LOCATION)==PackageManager.PERMISSION_GRANTED){

                mLocationPermissionGranted=true;

                initMap();


            } else {

                ActivityCompat.requestPermissions(this,permissions,LOCATION_PERMISSION_REQUEST_CODE);

             }

            }

            else {

            ActivityCompat.requestPermissions(this,permissions,LOCATION_PERMISSION_REQUEST_CODE);

        }


    }


我是谷歌地图编码的新手,所以我对此知之甚少。任何机构有解决方案请帮助我。提前致谢


泛舟湖上清波郎朗
浏览 199回答 2
2回答

茅侃侃

只有第一次它正常工作。之后完全不出现权限对话框一旦授予权限,则无需再次允许,除非用户通过设置应用程序更改它或重新安装应用程序等
随时随地看视频慕课网APP

相关分类

Java
我要回答