Jelajahi Sumber

优化蓝牙调试页功能

Frankensteinly 10 bulan lalu
induk
melakukan
966b2d3bde

+ 7 - 1
app/src/main/AndroidManifest.xml

@@ -4,11 +4,17 @@
 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+
+    <!--  蓝牙  -->
     <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
+    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"
+        android:usesPermissionFlags="neverForLocation"/>
+    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 
     <application
         android:name=".MyApplication"

+ 7 - 2
app/src/main/java/com/grkj/iscs/activity/test/BleActivity.kt

@@ -24,8 +24,10 @@ import com.grkj.iscs.ble.CustomBleScanCallback
 import com.grkj.iscs.ble.CustomBleWriteCallback
 import com.grkj.iscs.databinding.ActivityBleBinding
 import com.grkj.iscs.extentions.toHexStrings
+import com.grkj.iscs.model.Constants.BLE_LOCAL_NAME
 import com.grkj.iscs.model.Constants.PERMISSION_REQUEST_CODE
 import com.grkj.iscs.util.CommonUtils
+import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
 import com.leon.lfilepickerlibrary.LFilePicker
@@ -65,7 +67,10 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
                     holder.setOnClickListener(R.id.connect) { doConnect(position) }
                     holder.setOnClickListener(R.id.disconnect) {
                         BleUtil.instance?.indicate(mBleList[position].bleDevice, isStart = false, indicateCallback = null)
-                        mBinding?.rvBle?.adapter?.notifyItemChanged(position)
+                        BleManager.getInstance().disconnect(item?.bleDevice)
+                        Executor.delayOnMain(200) {
+                            mBinding?.rvBle?.adapter?.notifyItemChanged(position)
+                        }
                     }
 
                     holder.setOnClickListener(R.id.mtu) {
@@ -262,7 +267,7 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
                 bleDevice?.let {
                     Log.d("doScanBle", "扫描到的设备:${it.mac}")
                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
-                        if (!it.name.isNullOrBlank()) {
+                        if (!it.name.isNullOrBlank() && it.name == BLE_LOCAL_NAME) {
                             mBleList.add(BleBean(it))
                             mBinding?.rvBle?.adapter?.notifyDataSetChanged()
                         } else {