如何打开默认的摄像头不显示选择器? [英] How to open default camera without showing chooser?

查看:122
本文介绍了如何打开默认的摄像头不显示选择器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在你的应用程序中打开默认的摄像头?

我不想打开选配它(其客户的要求)。我使用的这个意图 android.media.action.IMAGE_CAPTURE ,并呼吁活动的结果。

一切都很好,但应用程序,如 在线摄像头,纸相机都出现在默认相机应用选择器,我不想显示选择器。

您的关注将是非常美联社preciated。


解决方案

 列表< ApplicationInfo>清单= packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
    对于(INT N = 0; N<则为list.size(); N ++){
        如果((list.get(N).flags&安培; ApplicationInfo.FLAG_SYSTEM)== 1)
        {
            Log.d(TAG,安装的应用程序:+ list.get(N).loadLabel(软件包管理系统)的ToString());
            Log.d(TAG,包名+ list.get(N).packageName);
            如果(list.get(N).loadLabel(软件包管理系统)的ToString()。equalsIgnoreCase(照相机)){
                defaultCameraPackage = list.get(N).packageName;
                打破;
            }
        }
    }

我发现以下解决方案及其工作完美。

 意图takePictureIntent =新意图(MediaStore.ACTION_IM​​AGE_CAPTURE);
takePictureIntent.setPackage(defaultCameraPackage);
startActivityForResult(takePictureIntent,动作code);

您可以通过在上述意图设置过滤包默认的摄像头。我已经通过安装两个应用测试了它的线摄像机 纸相机这两个应用都显示通过选择器,但过滤包以上$ ​​C $ C只能打开默认的摄像头。

How to open default camera in your application?

I don't want to open chooser for it (its client's requirement). I am using this intent android.media.action.IMAGE_CAPTURE and calling activity for result.

Everything is fine but apps like Line Camera, Paper Camera are appearing in chooser with default camera app, i don't want to show chooser for.

Your attentions will be highly appreciated.

解决方案

    List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
    for (int n=0;n<list.size();n++) {
        if((list.get(n).flags & ApplicationInfo.FLAG_SYSTEM)==1)
        {
            Log.d("TAG", "Installed Applications  : " + list.get(n).loadLabel(packageManager).toString());
            Log.d("TAG", "package name  : " + list.get(n).packageName);
            if(list.get(n).loadLabel(packageManager).toString().equalsIgnoreCase("Camera")) {
                defaultCameraPackage = list.get(n).packageName;
                break;
            }
        }
    }

I find following solution and its working perfectly.

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.setPackage(defaultCameraPackage); 
startActivityForResult(takePictureIntent, actionCode);

you can filter default camera by setting package in above intent. I've tested it by installing two application Line Camera and Paper Camera both apps were showing chooser but filtering by package above code open only default camera.

这篇关于如何打开默认的摄像头不显示选择器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆