実現したいこと
AndroidとArduinoでBluetooth通信をしたい
発生している問題・分からないこと
checkPermission を追加するのは理解しているが、調べ方が悪いのか試してみても一向に解決しない
エラーメッセージ
error
1Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`
該当のソースコード
Kotlin
1private inner class ConnectThread(device: BluetoothDevice) : Thread() { 2 private val mmSocket: BluetoothSocket? by lazy(LazyThreadSafetyMode.NONE) { 3 device.createInsecureRfcommSocketToServiceRecord(device.uuids[0].uuid) 4 } 5 6 public override fun run() { 7 // Cancel discovery because it otherwise slows down the connection. 8 if (ActivityCompat.checkSelfPermission( 9 this@MainActivity, 10 Manifest.permission.BLUETOOTH_SCAN 11 ) != PackageManager.PERMISSION_GRANTED 12 ) { 13 // TODO: Consider calling 14 // ActivityCompat#requestPermissions 15 // here to request the missing permissions, and then overriding 16 // public void onRequestPermissionsResult(int requestCode, String[] permissions, 17 // int[] grantResults) 18 // to handle the case where the user grants the permission. See the documentation 19 // for ActivityCompat#requestPermissions for more details. 20 return 21 } 22 bluetoothAdapter?.cancelDiscovery() 23 if (mmSocket == null) { 24 return 25 } 26 val socket = mmSocket 27 socket ?: return 28 socket.connect() 29 // The connection attempt succeeded. Perform work associated with 30 // the connection in a separate thread. 31 manageMyConnectedSocket(socket) 32 } 33 34 // Closes the client socket and causes the thread to finish. 35 fun cancel() { 36 try { 37 mmSocket?.close() 38 } catch (e: IOException) { 39 Log.e(TAG, "Could not close the client socket", e) 40 } 41 } 42 }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
ChatGPT等でエラー文とコードをコピペをし、返答された内容に沿ってコードを変更しても解決しない
補足
Android Studio Koala Feature Drop | 2024.1.2
あなたの回答
tips
プレビュー