Android 中RxPermissions 的使用方法詳解
以請求拍照、讀取位置權限為例
module的build.gradle:
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar' compile 'io.reactivex.rxjava2:rxjava:2.0.5'
AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.CAMERA"/>
源碼:
Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { RxPermissions rxPermissions = new RxPermissions((Activity) mContext); rxPermissions.request(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA) .subscribe(new Observer<Boolean>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Boolean aBoolean) { if (aBoolean) { Toast.makeText(mContext, "已獲取權限,可以干想干的咯", Toast.LENGTH_LONG) .show(); } else { //只有用戶拒絕開啟權限,且選了不再提示時,才會走這里,否則會一直請求開啟 Toast.makeText(mContext, "主人,我被禁止啦,去設置權限設置那把我打開喲", Toast.LENGTH_LONG) .show(); } } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); } });注意:
必須加 compile 'io.reactivex.rxjava2:rxjava:2.0.5'
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答
圖片精選