как получить mimeType из приложения? - PullRequest
1 голос
/ 24 августа 2010

Как я могу получить mimeType из приложения.

Я работаю над приложением, которое фильтрует определенные установленные приложения на основе mimeType.

Может кто-нибудь помочь мне с этим вопросом?

Большое спасибо

Ответы [ 4 ]

1 голос
/ 24 августа 2010

типы пантомимы связаны с деятельностью. Вы можете использовать List и PackageManager.queryIntentActivities (i, 0), чтобы получить все действия и, следовательно, приложения для данного типа пантомимы данных.

public static List<ResolveInfo> getIntents(String action, String category,
            PackageManager pm) {
        Intent i = new Intent(action, null);
        i.addCategory(category);
        i.setData(data_uri)
        List<ResolveInfo> list = pm.queryIntentActivities(i, 0);
        return list;
    }

Иначе, вы можете получить все приложения (запускаемые) по:

getIntents (Intent.ACTION_DEFAULT, Intent.CATEGORY_LAUNCHER, вторая половина дня);

и теперь классифицируем по String type = getIntent (). GetType ();

0 голосов
/ 25 августа 2010

Хотя это не полный ответ, это должно помочь вам приблизиться:

PackageManager pm = getPackageManager();
        Intent i = new Intent(Intent.ACTION_MAIN);
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        //i.setData(Media.INTERNAL_CONTENT_URI);

        List<ResolveInfo> list = pm.queryIntentActivities(i, 0);
        for(ResolveInfo item : list){


            try {

                PackageInfo info = pm.getPackageInfo(item.activityInfo.applicationInfo.packageName, pm.GET_SIGNATURES);
                Signature[] s = info.signatures;

                Log.d(LOG_TAG,item.activityInfo.name +":"+ s.toString());

            } catch (NameNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if(item.filter!=null){
                Log.d(LOG_TAG,item.activityInfo.name + ": " + item.filter.toString());
                List<String> types = (List<String>) item.filter.typesIterator();
            }

        }
0 голосов
/ 24 августа 2010

Вы можете получить данные MIME только намеренно:

String type = getIntent().getType();
0 голосов
/ 24 августа 2010

Как я могу получить mimeType из приложения.

Приложения не имеют типов MIME.

Вы можете создать ACTION_VIEW Intent с некоторым типом MIME и использовать PackageManager и queryIntentActivities(), чтобы определить, какие действия будут реагировать на это Intent.

...