2016-10-26 6 views

答えて

0

上記の目的でパッケージをデフォルトに設定すると、デフォルトのカメラをフィルタリングできます。私はラインカメラやペーパーカメラなどのアプリケーションをインストールすることでそれをテストしました。このアプリはチューザを表示しますが、上記のパッケージによるフィルタリングはデフォルトのカメラのみを開きます。

public void launchDefaultCameraApp() { 
    int actionCode = 201; 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    takePictureIntent.setPackage(getDefaultCameraPackageName(this)); 
    startActivityForResult(takePictureIntent, actionCode); 
} 

public String getDefaultCameraPackageName(Context context) { 
    String defaultCameraPackage = null; 
    PackageManager packageManager = context.getPackageManager(); 
    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; 
      } 
     } 
    } 
    return defaultCameraPackage; 
} 
関連する問題