###前提・実現したいこと
android studioを使用してandroid内蔵のカメラで撮影した写真をサーバーのディレクトリに送ろうとした時に以下のエラーメッセージが発生しました。(アプリは起動するのですが画像を送る場面で「問題が発生したため、QRCameraを終了します」と表示されます。)
追伸
URIにPATHをつけるにはどうすればいいのでしょうか。
数年前から使用がかわったみたいでURIにPATHがないみたいなのですが
###発生している問題・エラーメッセージ
###該当のソースコード
Java
1CameraActivity.java 2 3 4public class CameraActivity extends Activity { 5 6略 7 8TakeButton = (Button) findViewById(R.id.take_button); 9TakeButton.setOnClickListener(new View.OnClickListener() { 10public void onClick(View view) { 11String filename = System.currentTimeMillis() + ".jpg"; 12 13ContentValues values = new ContentValues(); 14values.put(MediaStore.Images.Media.TITLE, filename); 15values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); 16mImageUri = getContentResolver().insert( 17MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 18 19Intent intent = new Intent(); 20intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); 21intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri); 22startActivityForResult(intent, 2); 23 24} 25}); 26} 27 28@Override 29protected void onActivityResult(int requestCode, int resultCode, Intent data) { 30if (requestCode == 2) { 31 32//UriからFileへ変換 ここでPATHがとれません 33String path = mImageUri.getPath(); 34File file = new File(path); 35 36//ポスト先のURL 37String url = ここはURLを記入しています; 38 39//ここでPOSTする内容を設定 "image/jpg"の部分は送りたいファイルの形式に合わせて変更する 40RequestBody requestBody = new MultipartBody.Builder() 41.setType(MultipartBody.FORM) 42.addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/jpg"), file)) 43.build(); 44 45OkHttpClient client = new OkHttpClient(); 46 47Request request = new Request.Builder() 48.url(url) 49.post(requestBody) 50.build(); 51 52String result = ""; 53try { 54Response response = client.newCall(request).execute(); 55if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); 56{ 57result = response.body().string(); 58} 59} catch (Exception e) { 60} 61 62//return result: 63} 64} 65} 66 67 68追伸用 69 String scheme = mImageUri.getScheme(); 70 String path = ""; 71 if ("file".equals(scheme)) { 72 path = mImageUri.getPath(); 73 } else if("content".equals(scheme)) { 74 ContentResolver contentResolver = getApplicationContext().getContentResolver(); 75 Cursor cursor = contentResolver.query(mImageUri, new String[] { MediaStore.MediaColumns.DATA }, null, null, null); 76 if (cursor != null) { 77 cursor.moveToFirst(); 78 path = cursor.getString(0); 79 cursor.close(); 80 } 81 }
###試したこと
追伸用はネットに書いてあったほうほうではPATHを作ろうとしたのですが、今度はscheamの部分でエラーが出ます。
どうかよろしくお願いします
###補足情報(言語/FW/ツール等のバージョンなど)
この部分で使用したjarファイル:okhttp-3.6.0.jar
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/09 07:44
2017/02/09 07:50
2017/02/09 08:06 編集
2017/02/09 08:05
2017/02/09 08:12
2017/02/09 08:18
2017/02/09 08:23
2017/02/09 08:31
2017/02/09 09:05 編集
2017/02/09 09:24
2017/02/09 16:58 編集
2017/02/09 17:29
2017/02/09 18:24