easypermissions

来源:互联网 发布:mysql5.7数据库安装 编辑:程序博客网 时间:2024/06/05 09:29
http://www.jianshu.com/p/2b3661928e66

demo

public class MainActivity extends Activity implements EasyPermissions.PermissionCallbacks{    //声明AMapLocationClient类对象    public AMapLocationClient mLocationClient = null;    //声明定位回调监听器    public AMapLocationListener mLocationListener = new AMapLocationListener() {        @Override        public void onLocationChanged(AMapLocation amapLocation) {            if (amapLocation != null) {                if (amapLocation.getErrorCode() == 0) {                    //可在其中解析amapLocation获取相应内容。                    double locationType = amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表                    double latitude = amapLocation.getLatitude();//获取纬度                    double longitude =  amapLocation.getLongitude();//获取经度                    Log.e("Amap==经度:纬度", "locationType:"+locationType+",latitude:"+latitude+",longitude:"+longitude);                }else {                    //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。                    Log.e("AmapError","location Error, ErrCode:"                            + amapLocation.getErrorCode() + ", errInfo:"                            + amapLocation.getErrorInfo());                }            }        }    };    //声明AMapLocationClientOption对象    public AMapLocationClientOption mLocationOption = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        String[] perms = new String[]{Manifest.permission.ACCESS_FINE_LOCATION};        if (EasyPermissions.hasPermissions(MainActivity.this, perms)) {//检查是否获取该权限            //已获取权限//            JumpInApp();        } else {            //第二个参数是被拒绝后再次申请该权限的解释 "为了功能正常使用,请开启您的权限"            //第三个参数是请求码            //第四个参数是要申请的权限            EasyPermissions.requestPermissions(MainActivity.this, "为了功能正常使用,请开启您的权限", 0, perms);        }        //初始化定位        mLocationClient = new AMapLocationClient(getApplicationContext());        //设置定位回调监听        mLocationClient.setLocationListener(mLocationListener);        //初始化AMapLocationClientOption对象        mLocationOption = new AMapLocationClientOption();        //设置定位模式为AMapLocationMode.Battery_Saving,低功耗模式。        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);        //给定位客户端对象设置定位参数        mLocationClient.setLocationOption(mLocationOption);        //启动定位        mLocationClient.startLocation();        /**         * 获取一次定位         */        //该方法默认为false,true表示只定位一次        mLocationOption.setOnceLocation(true);    }    @Override    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);    }    @Override    protected void onDestroy() {        super.onDestroy();        mLocationClient.stopLocation();    }    @Override    public void onPermissionsGranted(int requestCode, List<String> perms) {        if (perms.get(0).equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {//            JumpInApp();        }    }    @Override    public void onPermissionsDenied(int requestCode, List<String> perms) {    }}