Android 保护位置测试

Android Secure the Location test

大家好我很好奇如何解决下面代码中的位置安全问题:

 private void myLocaion(){
    Criteria criteria = new Criteria(); 
    locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    final String myBestProvider = locationManager.getBestProvider(criteria, false); 
    Toast.makeText(gtApplicationContext(), myBestProvider, Toast.LENTH_SHORT).show(); 

    myLocationListener = new LocationListener{ 

        public void onLocationChaned(Location location){
            Toas.makeText(getApplicationContext(),
                            location.getLatitude() + " " + 
                            location.getLongiude(), Toast.LENGTH_SHORT).show();
        }
        public void onStatusChanged(String provider, int status, Bundle extras){}
        public void onProviderEnabled(String provider){}
        public void onProviderDisabled(String provider){}
    };//LocationListener
    locationManager.requestLocationUpdates(MyBestProvider, 0, 0, myLocationListener)

}

好像是Android Studio 的开发环境关于这段代码安全问题的声明:

locationManager.requestLocationUpdates(MyBestProvider, 0, 0, myLocationListener)

Android API: 23

Android API 23操作码前需要安全审核

有3种方法可以解决这个问题:

1)尽量给开发环境修复安全码需求

2) 编译较旧的开发环境Android Studio

3) 更改目标版本

更改方法如下:

文件 -> 项目结构.. -> 风格 -> Targer Sdk 版本 如果到目前为止一切正常,您可以提前编写应用程序并发送位置信息方法onLocationChanged( ) 映射功能:

Uri.parse("geo:" + myLocation.getLatitude() + "," myLocation.getLongitude())

然后:

public void showMap( Uri geoLocation ){
    Intent intent = new Intent (Intent.ACTION_VIEW); 
    Intent.setData(geoLocation); 
    if (intent.resolveActivity(getPackageManager()) != null){
        startActivity(intent); 
        locationManager.removeUpdates(mylocationListener;)
    }
}