Android 如何从应用程序中获取mimeType?

Android 如何从应用程序中获取mimeType?,android,mime-types,Android,Mime Types,如何从应用程序中获取mimeType 我正在开发一个基于mimeType过滤某些已安装应用程序的应用程序 有人能帮我解决这个问题吗 非常感谢 如何从应用程序中获取mimeType 应用程序没有MIME类型 您可以使用某种MIME类型创建一个ACTION\u视图Intent,并使用PackageManager和queryntentactivities()确定哪些活动将响应该Intent 如何从应用程序中获取mimeType 应用程序没有MIME类型 您可以使用某种MIME类型创建一个ACTION\

如何从应用程序中获取mimeType

我正在开发一个基于mimeType过滤某些已安装应用程序的应用程序

有人能帮我解决这个问题吗

非常感谢

如何从应用程序中获取mimeType

应用程序没有MIME类型

您可以使用某种MIME类型创建一个
ACTION\u视图
Intent
,并使用
PackageManager
queryntentactivities()
确定哪些活动将响应该
Intent

如何从应用程序中获取mimeType

应用程序没有MIME类型


您可以使用某种MIME类型创建一个
ACTION\u视图
Intent
,并使用
PackageManager
queryIntentActivities()
来确定哪些活动将响应该
Intent

您只能在Intent中获取MIME类型的数据:

String type = getIntent().getType();

您只能在以下意图中获取MIME类型的数据:

String type = getIntent().getType();

mime类型与活动相关联。您可以使用List和PackageManager.QueryInputActivities(i,0)来获取给定数据mime类型的所有活动以及应用程序

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(字符串操作、字符串类别、,
包装经理(pm){
意向i=新意向(行动,无效);
i、 添加类别(类别);
i、 setData(数据_uri)
列表=pm.QueryEntActivities(i,0);
退货清单;
}
否则,您可以通过以下方式获得所有应用程序(可启动):

getIntents(Intent.ACTION\u默认值,Intent.CATEGORY\u启动器,pm)


现在按字符串类型分类=getIntent().getType()

mime类型与活动相关联。您可以使用List和PackageManager.QueryInputActivities(i,0)来获取给定数据mime类型的所有活动以及应用程序

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(字符串操作、字符串类别、,
包装经理(pm){
意向i=新意向(行动,无效);
i、 添加类别(类别);
i、 setData(数据_uri)
列表=pm.QueryEntActivities(i,0);
退货清单;
}
否则,您可以通过以下方式获得所有应用程序(可启动):

getIntents(Intent.ACTION\u默认值,Intent.CATEGORY\u启动器,pm)


现在按字符串类型分类=getIntent().getType()

虽然这不是一个完整的答案,但这应该有助于你更接近:

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();
            }

        }
PackageManager pm=getPackageManager();
意向i=新意向(意向.行动\主要);
i、 addCategory(意图.类别\发射器);
//i、 setData(媒体内部内容URI);
列表=pm.QueryEntActivities(i,0);
用于(ResolveInfo项:列表){
试一试{
PackageInfo=pm.getPackageInfo(item.activityInfo.applicationInfo.packageName,pm.GET_签名);
签名[]s=信息签名;
Log.d(Log_标记,item.activityInfo.name+”:“+s.toString());
}catch(nameNotFounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
if(item.filter!=null){
Log.d(Log_标记,item.activityInfo.name+”:“+item.filter.toString());
列表类型=(列表)项.filter.typesIterator();
}
}

虽然这不是一个完整的答案,但这应该有助于您更接近:

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();
            }

        }
PackageManager pm=getPackageManager();
意向i=新意向(意向.行动\主要);
i、 addCategory(意图.类别\发射器);
//i、 setData(媒体内部内容URI);
列表=pm.QueryEntActivities(i,0);
用于(ResolveInfo项:列表){
试一试{
PackageInfo=pm.getPackageInfo(item.activityInfo.applicationInfo.packageName,pm.GET_签名);
签名[]s=信息签名;
Log.d(Log_标记,item.activityInfo.name+”:“+s.toString());
}catch(nameNotFounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
if(item.filter!=null){
Log.d(Log_标记,item.activityInfo.name+”:“+item.filter.toString());
列表类型=(列表)项.filter.typesIterator();
}
}

你好,sameer,你能给我举个例子吗。就像我想要的所有应用程序都有视频mimeType。嗨,sameer,你能给我举个例子吗。就像我想要所有的应用程序都有视频模版。我用这个代码来获取所有的模版。但是我得到的是nullpointer作为变量item.filter在模拟器和设备中都始终为null。我使用这段代码来获得所有的mimetype。但我得到的是nullpointer作为变量item.filter在模拟器和设备中都始终为null。