From 51f657872f152a115fb055ad8860093a5cdbc12d Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期一, 17 四月 2023 16:44:52 +0800 Subject: [PATCH] 隐私权限相关 --- app/src/main/java/com/fuban/user/ui/MainActivity.kt | 67 ++++++++++++++++++++++----------- 1 files changed, 45 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/fuban/user/ui/MainActivity.kt b/app/src/main/java/com/fuban/user/ui/MainActivity.kt index 6b13a10..81ad559 100644 --- a/app/src/main/java/com/fuban/user/ui/MainActivity.kt +++ b/app/src/main/java/com/fuban/user/ui/MainActivity.kt @@ -140,18 +140,28 @@ startActivity<ServiceActivity>() } iv_scan.setOnClickListener { - if (checkLogin()) - RxPermissions(this).request(Manifest.permission.CAMERA).subscribe { - if (it) - startActivity<ScanActivity>( - "startLat" to startLat, - "startLon" to startLon, - "startName" to startName - ) - else - myToast("请在应用权限页面开启相机权限") + if (checkLogin()) { + if (!RxPermissions(this).isGranted(Manifest.permission.CAMERA) //没有权限且明确拒绝就不再申请权限 + && SPUtils.instance().getBoolean(Const.User.IS_REFUSE_PERMISSION_CAMERA) + ) { + myToast("请在应用权限页面开启相机权限") + } else { + RxPermissions(this).request(Manifest.permission.CAMERA).subscribe { + if (it) + startActivity<ScanActivity>( + "startLat" to startLat, + "startLon" to startLon, + "startName" to startName + ) + else{ + myToast("请在应用权限页面开启相机权限") + SPUtils.instance().put(Const.User.IS_REFUSE_PERMISSION_CAMERA,true).apply() + } + } } + } } + } @@ -177,16 +187,21 @@ isOpen = intent.getBooleanExtra("isOpen", false) lat = intent.getDoubleExtra("lat", 0.0) lon = intent.getDoubleExtra("lon", 0.0) - if (!isOpen){ + if (!isOpen) { initLocation { initLocationS { b, fucS -> cl_title.visible() initTwoView(b, fucS, FBApplication.lat, FBApplication.lon) } } - }else{ + } else { cl_title.visible() - initTwoView(isOpen, func?: arrayListOf(), FBApplication.lat, FBApplication.lon) + initTwoView( + isOpen, + func ?: arrayListOf(), + if (lat != 0.0) lat else FBApplication.lat, + if (lon != 0.0) lon else FBApplication.lon + ) } } @@ -235,16 +250,24 @@ } private fun initLocation(function: () -> Unit) { - val disposable = - RxPermissions(this@MainActivity).request(Manifest.permission.ACCESS_FINE_LOCATION) - .subscribe { - if (it) { - function() - } else { - + if (!RxPermissions(this).isGranted(Manifest.permission.ACCESS_FINE_LOCATION) //没有权限且明确拒绝就不再申请权限 + && SPUtils.instance().getBoolean(Const.User.IS_REFUSE_PERMISSION_LOCATION) + ) { + initTwoView(false, arrayListOf(), 0.0, 0.0) + } else { + val disposable = + RxPermissions(this@MainActivity).request(Manifest.permission.ACCESS_FINE_LOCATION) + .subscribe { + if (it) { + function() + } else { + SPUtils.instance().put(Const.User.IS_REFUSE_PERMISSION_LOCATION, true) + .apply() + initTwoView(false, arrayListOf(), 0.0, 0.0) + } } - } - onBindHelper(disposable) + onBindHelper(disposable) + } } private fun showAlert() { -- Gitblit v1.7.1