Browse Source

fix(android): 进一步彻底移除自启动权限和接收器以符合隐私要求

移除RECEIVE_BOOT_COMPLETED权限和BootReceiver,避免应用在系统启动时自动运行
同时移除WorkManager的RescheduleReceiver以优化后台行为
weicu
lxm 9 months ago
parent
commit
eecb78d1ee
  1. 0
      .gradle/wrapper/dists/gradle-8.11.1-all/2qik7nd48slq1ooc2496ixf4i/gradle-8.11.1-all.zip.lck
  2. BIN
      .gradle/wrapper/dists/gradle-8.11.1-all/2qik7nd48slq1ooc2496ixf4i/gradle-8.11.1-all.zip.part
  3. 7
      android/app/src/main/AndroidManifest.xml
  4. 16
      local_plugins/ble_service/android/src/main/AndroidManifest.xml
  5. 33
      local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BootReceiver.kt

0
.gradle/wrapper/dists/gradle-8.11.1-all/2qik7nd48slq1ooc2496ixf4i/gradle-8.11.1-all.zip.lck

BIN
.gradle/wrapper/dists/gradle-8.11.1-all/2qik7nd48slq1ooc2496ixf4i/gradle-8.11.1-all.zip.part

Binary file not shown.

7
android/app/src/main/AndroidManifest.xml

@ -64,6 +64,9 @@
<!--允许写设备缓存,用于问题排查-->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
tools:node="remove" />
<application
android:label="Voitrans"
@ -78,6 +81,10 @@
<!-- 支持16KB内存页面大小,满足Android 15要求 -->
<property android:name="android.allow_16kb_memory_page" android:value="true" />
<receiver
android:name="androidx.work.impl.background.systemalarm.RescheduleReceiver"
tools:node="remove" />
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>

16
local_plugins/ble_service/android/src/main/AndroidManifest.xml

@ -12,9 +12,6 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<!-- 系统启动权限 -->
<!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> -->
<!-- Companion 特权:后台运行 & 启动前台服务 -->
<uses-permission android:name="android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND"/>
<uses-permission android:name="android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND"/>
@ -51,17 +48,6 @@
</intent-filter>
</receiver>
<!-- 系统启动接收器 -->
<!-- <receiver
android:name=".BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver> -->
</application>
</manifest>
</manifest>

33
local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BootReceiver.kt

@ -1,33 +0,0 @@
package com.yunqiinnovation.ble_service
import android.content.*
import android.os.Build
import android.util.Log
/**
* 系统启动接收器
* 当系统重启完成后,自动启动BLE前台服务
* 注意:需要用户在设置中授予应用自启动权限才能生效
*/
class BootReceiver : BroadcastReceiver() {
private val TAG = "BootReceiver"
override fun onReceive(ctx: Context, i: Intent) {
val serviceClass = try {
Log.d(TAG, "BleMediaService不存在")
Class.forName("com.yunqiinnovation.agent_service.BleMediaService")
} catch (e: ClassNotFoundException) {
Log.d(TAG, "BleMediaService不存在")
return
}
if (i.action == Intent.ACTION_BOOT_COMPLETED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
Log.d(TAG, "BleMediaService")
ctx.startForegroundService(Intent(ctx, serviceClass))
}
else{
Log.d(TAG, "BleMediaService")
ctx.startService(Intent(ctx, serviceClass))
}
}
}
}
Loading…
Cancel
Save