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