diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java index 264ed3f82..a9d343813 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java @@ -4,6 +4,7 @@ import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; +import android.net.Uri; import android.os.Build; import android.os.Environment; import android.provider.Settings; @@ -11,9 +12,11 @@ import android.view.View; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.RequiresApi; import androidx.core.content.ContextCompat; import androidx.viewbinding.ViewBinding; +import com.fongmi.android.tv.BuildConfig; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.bean.Config; @@ -77,7 +80,7 @@ public class SettingActivity extends BaseActivity implements SettingCallback { private void checkUrl(String url) { if (url.startsWith("file://") && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) { - launcherIntent.launch(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)); + openSetting(); } else if (url.startsWith("file://") && Build.VERSION.SDK_INT < Build.VERSION_CODES.R && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { launcherString.launch(Manifest.permission.READ_EXTERNAL_STORAGE); } else { @@ -85,6 +88,15 @@ public class SettingActivity extends BaseActivity implements SettingCallback { } } + @RequiresApi(api = Build.VERSION_CODES.R) + private void openSetting() { + try { + launcherIntent.launch(new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Uri.parse("package:" + BuildConfig.APPLICATION_ID))); + } catch (Exception e) { + launcherIntent.launch(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)); + } + } + private void loadConfig() { ApiConfig.get().clear().loadConfig(new Callback() { @Override