3

カメラ アプリケーションで写真を撮るために Camera Intent を起動しています。アプリのデフォルト バージョンで期待どおりに動作しています。

私のアプリケーションのバージョンに同じコードを実装しまし"Android for Work"たが、奇妙な動作になりました。通常、"Android for Work"動画によると、別のプロファイルにある場合、Intent を処理することはできません。たとえば、仕事用プロファイルにカメラ アプリケーションがインストールされていない場合、Camera Intent は解決後に null になる必要がありますが、これは想定どおりです。

しかし、私の場合、カメラの意図は、デフォルトのユーザー プロファイルにインストールされているカメラ アプリケーションによって処理されます (Work Profileカメラ アプリケーションはありません)。onActivityResultそして、写真を撮ると、に戻りresultCode Activity.RESULT_CANCELEDます。

Real Cancel Eventそれで、私の質問は、ユーザーとこの状況をどのように区別できますか? どちらも同じ結果になり、Activity.RESULT_CANCELED

以下のコードは、Camera Intent を起動する方法を示しています。

/* Create Camera Intent */
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

/* Check if the Camera Intent is Available */
if (cameraIntent.resolveActivity(getActivity().getPackageManager()) == null) {

    /* Notify User in Error Case */
    UIUtils.notifyUser(getActivity(), getString(R.string.error), getString(R.string.no_camera_application_found));

} else {

    /* Create a new File with Random Photo Name */
    takenPhoto = new File(FileUtils.getExternalPhotoCacheDirectory(), generatePhotoName());
    takenPhoto.createNewFile();

    /* Create Uri to send to within the Intent */
    Uri outputFileUri = Uri.fromFile(takenPhoto);

    /* Set Photo destination File Uri */
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

    /* Start Activity for Result */
    startActivityForResult(cameraIntent, ACTION_TAKE_PHOTO);
 }

編集:ここに私の管理パネルからのスクリーンショットがあります。 クロス プロファイルの制限 仕事用プロファイルで許可されているアプリケーション

4

1 に答える 1