3

image_captureイベントを開始するメソッドがアクティビティにあります

    public static void takePhoto(boolean fullSize) {

    if(isIntentAvailable(mActivity.getApplicationContext(), MediaStore.ACTION_IMAGE_CAPTURE)){
        mActivity.startActivityForResult(new Intent(
                MediaStore.ACTION_IMAGE_CAPTURE), CAPTURE_IMAGE);
    }
    else{
        Toast.makeText(mActivity.getApplicationContext(), "Geen camera beschikbaar", Toast.LENGTH_SHORT).show();
    }
}

public static boolean isIntentAvailable(Context context, String action) {
    final PackageManager packageManager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List<ResolveInfo> list =
            packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}

ユーザーが写真を撮ったら、写真からバイトを取得して、それらのバイトをブロードキャストしたいと思います。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode != RESULT_CANCELED) {

        case CAPTURE_IMAGE:
                byte[] photoBytes = null;

                if (data != null) {
                    Bitmap b = (Bitmap) data.getExtras().get("data");
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    b.compress(Bitmap.CompressFormat.PNG, 100, stream);
                    photoBytes = stream.toByteArray();

                    Toast.makeText(getApplicationContext(), "Foto wordt geupload..", Toast.LENGTH_SHORT).show();
                    Log.d("ShowScreenActivity", Integer.toString(photoBytes.length));

                    // Send bytearray back to server
                    BroadcastSender.sendPicture(photoBytes);
                }
                else
                    Log.d("ShowScreenActivity", "Data in intent is empty");

            break;
        }
    }
}

すべて正常に動作しますが、画像はデバイスのギャラリーにも保存されます。
どうすればこれを防ぐことができますか、または何を間違えますか?

4

2 に答える 2

3

これがデフォルトの動作であるため、画像はギャラリーに保存されます。これをオーバーライドするには、画像を保存するための別のターゲットフォルダーを指定し(カメラを呼び出す目的で)、フォルダーに.nomediaファイルを配置する必要があります。

于 2012-09-20T11:36:27.587 に答える
0

BroadcastSenderのsendPictureメソッドのディレクトリに画像を一時的に保存しますか?

MediaScannerによってインデックス付けされたディレクトリに画像が保存されている場合、画像は自動的にギャラリーに追加されます。

于 2012-09-20T11:57:11.987 に答える