Создание намерения запустить системное приложение «Файлы»Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Создание намерения запустить системное приложение «Файлы»

Сообщение Anonymous »


Я хочу запустить приложение Файлы из своего приложения. Приложение с этим значком:


Изображение


Приведенный ниже код работает для Android 9–11. В более старых версиях использовался резервный вариант. Но в Android 12 невозможно создать намерение запуска как для com.google.android.documentsui, так и для com.android.documentsui. Есть ли обходной путь?

public static void startFilesManager (контекст контекста) { пытаться { // com.android.documentsui — приложение «Файлы» для Android 9 и 11. // com.google.android.documentsui — это приложение «Файлы» в Android 10. // com.google.android.apps.nbu.files — файловый менеджер Google, он используется как резервный вариант. Пакеты String[] = новая String[] { "com.android.documentsui", "com.google.android.documentsui", "com.google.android.apps.nbu.files" }; Намерение намерение = ноль; for (int i = 0; i < packages.length; i++) { Строка packageName = packages; намерение = context.getPackageManager().getLaunchIntentForPackage(packageName); если (намерение! = ноль) { перерыв; } } // Если ничего не установлено, направляем пользователя в магазин. если (намерение == ноль) { намерение = новое намерение (Intent.ACTION_VIEW); Intent.setData(Uri.parse("market://details?id=" + packages[packages.length - 1])); } Intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(намерение); } поймать (Исключение e) { Log.e("FileManager", "startFilesManager: не удалось запустить", e); } } Обновление Я также пробовал использовать Intent.CATEGORY_APP_FILES, как показано ниже, но он просто выдает ActivityNotFoundException. Это происходит на любой версии Android (по крайней мере, в эмуляторе, где установлен Files).
public static void startFilesManager (контекст контекста) { пытаться { Намерение намерение = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_FILES); Intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(намерение); } поймать (Исключение e) { Log.e("FileManager", "startFilesManager: не удалось запустить", e); } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»