質問

これが私がやっていることです:

onactivityResultでは、データを意図的に取得します。

 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
 startActivityForResult(intent, TAKE_PICTURE);

このコードは画像IDを取得します。

data.getData().getLastPathSegment();

次に、この画像IDを使用してByte [] Imagedataを取得して、サーバーに画像をアップロードできるようにしたいと思います。

どうすればいいですか?

役に立ちましたか?

解決

Uri selectedImageUri = data.getData();

String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(selectedImageUri, projection, null, null, null);
cursor.moveToFirst();
selectedImagePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
cursor.close();

try 
{
    File myFile = new File(selectedImagePath);
    int filelenghth=(int)myFile.length();
    byte [] mybytearray  = new byte [filelenghth];
    BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(myFile));

    bis1.read(mybytearray,0,mybytearray.length);

    dos.write(mybytearray,0,mybytearray.length);   // write the array to the data output stream
                                                   // or whatever else you want to do with it
    finish();
}
catch(Exception e)
{
    e.printStackTrace();
}

他のヒント

data.getData()は、画像のためにURIを返します。 (データを確認!=最初にnull!)

次に、サーバーにHTTP投稿を実行する必要があります。

HTTP投稿コードについては、次の参照を参照してください。 HTTP投稿を使用して画像を送信します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top