diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 5fbcba4..d9d19f8 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -7,6 +7,8 @@ + + diff --git a/android/app/src/main/java/cn/ilapage/goauto/agent/MainActivity.kt b/android/app/src/main/java/cn/ilapage/goauto/agent/MainActivity.kt index 2c441ce..552bd82 100644 --- a/android/app/src/main/java/cn/ilapage/goauto/agent/MainActivity.kt +++ b/android/app/src/main/java/cn/ilapage/goauto/agent/MainActivity.kt @@ -38,6 +38,7 @@ class MainActivity : AppCompatActivity() { ) setContentView(buildContent()) requestNotificationPermission() + requestMediaPermission() if (AgentSettingsStore(this).serverUrl().isNotBlank()) AgentForegroundService.start(this) AgentAppUpdateManager.checkOnceAtStartup(this) } @@ -127,6 +128,14 @@ class MainActivity : AppCompatActivity() { } } + private fun requestMediaPermission() { + val permission = if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES + else Manifest.permission.READ_EXTERNAL_STORAGE + if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { + requestPermissions(arrayOf(permission), MEDIA_PERMISSION_REQUEST) + } + } + private fun applyScreenPolicy() { val keepScreenOn = cn.ilapage.goauto.agent.service.AgentStateStore(this).read().keepScreenOn if (keepScreenOn) { @@ -145,5 +154,6 @@ class MainActivity : AppCompatActivity() { private const val TAB_PREFERENCES = "goauto_agent_ui" private const val LAST_SELECTED_TAB = "last_selected_tab" private const val STATE_SELECTED_TAB = "selected_tab" + private const val MEDIA_PERMISSION_REQUEST = 101 } }