我的Base64字符串是從照片轉換而來的。我嘗試將它們放入我的json對象中,但會導致部分Base64字符串被切割,甚至其他json對象可能會消失。當我用短的Base64字符串替換原來的那個時,json格式就可以了。我怎麼能修好它?未能在json中放入Base64字符串
public void TakePhotoOnClick(View view) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
file = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
file = new File(file, "picture.jpg");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
if (isIntentAvailable(this, cameraIntent)) {
startActivityForResult(cameraIntent, REQUEST_TAKE_PICTURE);
} else {
Toast.makeText(this, R.string.msg_NoCameraAppsFound,
Toast.LENGTH_SHORT).show();
}
}
private boolean isIntentAvailable(Context context, Intent intent) {
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.w(" MainActivity","onActivityResult");
if (requestCode == REQUEST_TAKE_PICTURE && resultCode == RESULT_OK) {
Bitmap picture = BitmapFactory.decodeFile(file.getPath());
ivDriverPhoto.setImageBitmap(picture);
ByteArrayOutputStream out1 = new ByteArrayOutputStream();
picture.compress(Bitmap.CompressFormat.JPEG, 50, out1);
image = out1.toByteArray();
driver_photo = Base64.encodeToString(image, Base64.DEFAULT);
Log.w(" MainActivity","image"+ driver_photo);
}
}
照片Base64編碼字符串是類似以下字符串: 圖像/ 9J/4AAQSkZJRgABAQAAAQABAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9 ... (它太長了,完全表現出來)
和短測試BASE64斯汀是如下: 圖像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1 + jfqAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAAHoAAAB6AZUMqX8AAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAA4ElEQVQoz6XRzyvDcRgH8JdJObmsJMUf4KIotaJEUYrLNPnxTY4r3Ocw32K + HwpxmZ1cN H/C/rzHYVvNZQ56X1/P09P7EcbHn0AmH5OMYux8QQqmXSk8K8yasCWX2zMZpD44txSCDccOVZVsaqiPgm + v2roqntxpq/n0oTQEy05CcGnem1YIrnSUByDIzVlwY1FNS + bIix1rww3beh4kPR119y6cSs40JJIDTeuaCquSjtsQXHu32wePSkHZTNA0paFqX2FCkij6VwyKyUOwohKCpCDTHan261fRXZl/F/MHNSqo8Xq9umsAAAAASUVORK5CYII =
所以你的問題是當你試圖把'driver_photo'放入一個JSON對象?在你的代碼中沒有任何與json相關的東西......同樣奇怪的是,兩個base64字符串在開頭都有'image /'...它們是由Base64.encode生成的? – Salem
是的,Photo Base64字符串來自Log(Log.w(「MainActivity」,「image」+ driver_photo))。 –