所以我有一个连接到蓝牙打印机的应用程序。它很好并且可以在除以下设备之外的所有设备上运行:
关于Google开发者,android 12使用这三个权限
android.permission.BLUETOOTH_CONNECT
android.permission.BLUETOOTH_SCAN
android.permission.BLUETOOTH_ADVERTISE
Run Code Online (Sandbox Code Playgroud)
但是当我尝试连接打印机时,我收到了这个错误,这让我抓狂。
2022-03-21 09:23:49.039 29022-29206/com.xxxx.xxxxx E/BThermalPrinterPlugin: UID 10324 / PID 29022 lacks permission android.permission.BLUETOOTH
java.lang.SecurityException: UID 10324 / PID 29022 lacks permission android.permission.BLUETOOTH
at android.os.Parcel.createExceptionOrNull(Parcel.java:2425)
at android.os.Parcel.createException(Parcel.java:2409)
at android.os.Parcel.readException(Parcel.java:2392)
at android.os.Parcel.readException(Parcel.java:2334)
at android.bluetooth.IBluetoothSocketManager$Stub$Proxy.connectSocket(IBluetoothSocketManager.java:227)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:404)
at id.kakzaki.blue_thermal_printer.BlueThermalPrinterPlugin.lambda$connect$1$id-kakzaki-blue_thermal_printer-BlueThermalPrinterPlugin(BlueThermalPrinterPlugin.java:544)
at id.kakzaki.blue_thermal_printer.BlueThermalPrinterPlugin$$ExternalSyntheticLambda1.run(Unknown Source:6)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
Run Code Online (Sandbox Code Playgroud)
是这种 ROM/平台/设备特定的问题。android.permission.BLUETOOTH 应该在 android 11 及更低版本上使用,因为 android 12 及更高版本将其替换为 …
我尝试在我的应用程序中使用 Playstore 中已有的 Google 应用内更新库。但我对如何测试它有一些问题。我不会使用 FakeAppUpdateManager 因为没有显示 UI 并且没有真正执行更新
首先,即使我将 versionCode 设置为低于 Playstore 版本代码,由于密钥库不同,我也无法使用调试版本对其进行测试。
其次,根据一些教程说我必须使用发布版本并使用我在 Playstore 上上传的相同密钥库进行签名。但当我这样做时,我仍然没有得到任何应用内更新。我的猜测是:因为我使用了谷歌应用程序签名,所以指纹是不同的,并且它不被识别为同一个应用程序(如果我错了,请告诉我)。
有什么优雅的方法来测试这个吗?