Skip to content
a247124718 edited this page Dec 22, 2016 · 1 revision

Welcome to the AndroidUsefulProject wiki! 当我们仅仅需要启动系统相机并且拍照片,不需要保存 private void launchCamera() { try{ //获取相机包名 Intent infoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); ResolveInfo res = mContext.getPackageManager(). resolveActivity(infoIntent, 0); if (res != null) { String packageName=res.activityInfo.packageName; if(packageName.equals("android")) { infoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE_SECURE); res = mContext.getPackageManager(). resolveActivity(infoIntent, 0); if (res != null) packageName=res.activityInfo.packageName; } //启动相机 startApplicationByPackageName(packageName); } } catch(Exception e) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivity(intent); e.printStackTrace(); }

}

private void startApplicationByPackageName(String packName) {
    PackageInfo packageInfo=null;
    try{
        packageInfo=getPackageManager().getPackageInfo(packName, 0);
    }catch(Exception e){
        e.printStackTrace();
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivity(intent);
    }
    if(null==packageInfo){
        return;
    }
    Intent resolveIntent=new Intent();
    resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    resolveIntent.setPackage(packageInfo.packageName);
    List<ResolveInfo> resolveInfoList =getPackageManager().queryIntentActivities(resolveIntent, 0);
    if(null==resolveInfoList){
        return;
    }
    Iterator<ResolveInfo> iter=resolveInfoList.iterator();
    while(iter.hasNext()){
        ResolveInfo resolveInfo=(ResolveInfo) iter.next();
        if(null==resolveInfo){
            return;
        }
        String packageName=resolveInfo.activityInfo.packageName;
        String className=resolveInfo.activityInfo.name;
        Intent intent=new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        ComponentName cn=new ComponentName(packageName, className);
        intent.setComponent(cn);
        startActivity(intent);
    }//while
}//method

Clone this wiki locally