Список приложений Android, которые могут просматривать неизвестный файл - PullRequest
2 голосов
/ 11 января 2012

Привет, я работаю над приложением, в котором мне нужно перечислить все типы приложений, способных открыть файл.Если бы файл представлял собой изображение, я обычно делал бы что-то подобное, чтобы показать все приложения, способные просматривать изображение.

Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "image/*");
context.startActivity(intent);

Однако, скажем, у меня есть неизвестный файл, как я могу перечислить все приложения, способные просматривать файлтаким образом, пользователь может выбрать соответствующее приложение, чтобы открыть файл в моем приложении.

Мне также нужны заголовки, перечисленные в списке, если это возможно, чтобы я мог перечислить их в виде списка.

Спасибо за любую помощь в получении списка приложений, способных просматривать файл

==================================

Редактировать

Хорошо, что-то проще, как я могу получить приложения из вышеизложенного намерения в массивмог бы просто сделать image / * audio / * и т. д. и добавить их все в список, а затем перечислить их в виде списка, и это решило бы мою проблему

Ответы [ 3 ]

0 голосов
/ 04 февраля 2012

Хорошо, я понял, что моя проблема в том, что я искал:

    Intent audioIntent = new Intent(android.content.Intent.ACTION_VIEW);
    audioIntent.setDataAndType(Uri.fromFile(Opener.file), "audio/*");
    List<ResolveInfo> audio = packageManager.queryIntentActivities(audioIntent, 0);
    for (ResolveInfo info : audio){
        String label = info.loadLabel(packageManager).toString();
        Drawable icon = info.loadIcon(packageManager);
        String packageName = info.activityInfo.packageName;
        String name = info.activityInfo.name;
        iconlabel.add(a.new HolderObject(label, icon, audioIntent, "audio/*", packageName, name));
    }

Но главное в приведенном выше коде - это метод queryIntentActivities, который решил мою проблему, позволив мне добавить эти приложения всписок

0 голосов
/ 19 февраля 2013

Это может помочь вам перечислить приложение, которое может открывать определенный файл.

// extension  : The file extension (.pdf, .docx)

String extension = filePath.substring(filePath.lastIndexOf(".") + 1);
        String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase());

        if (null == mimeType) {
            // Need to set the mimetype for files whose mimetype is not understood by android MimeTypeMap.
            mimeType = "";
        }
        File file = new File(filePath);
        Uri data = Uri.fromFile(file);
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setDataAndType(data, mimeType);
        context.startActivity(Intent.createChooser(intent, "Complete action using"));
0 голосов
/ 11 января 2012

Насколько я знаю, в Android нет API, который связывает файлы с программой, как в Windows. Боюсь, ваш лучший выбор - создать базу данных известных типов файлов и связанных с ними программ / приложений для Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...