2012-02-10 18 views
0

私たちはアンドロイド2.3.3でチャットアプリケーションを行っています。あるエミュレータから別のエミュレータにソケットプログラミングを使用してギャラリーから画像を送信したいと考えています。この点に関する助けは相当なものとなるでしょう。事前ギャラリーから画像を送信する

+0

検索は、サンプルコードの多くを明らかにするかもしれませんソケット実装の場合:http://stackoverflow.com/questions/5057417/socket-connection-android – WarrenFaith

答えて

0

で おかげで以下のように、アクションのピックを使用して、ギャラリーから画像を取得します。OnActivityResultで は、あなたがのURIを受け取ることになる。これは写真を選択するあなたは、ギャラリーアプリケーションを起動できるようになる

Intent i = new Intent(Intent.ACTION_PICK, 
       android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(i, ACTIVITY_SELECT_IMAGE); 

写真:

プロセスここからバイト配列を取得するには、このURI:

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case REQ_CODE_PICK_IMAGE: 
     if(resultCode == RESULT_OK){ 
      Uri selectedImage = imageReturnedIntent.getData(); 
      String[] filePathColumn = {MediaStore.Images.Media.DATA}; 

      Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String filePath = cursor.getString(columnIndex); 
      cursor.close(); 


      Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); 

      ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
      bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
      byte[] byteArray = stream.toByteArray(); 

      //Open a Socket Connection to send photo 

      Socket socket=new Socket("ip", portNo); 
      OutputStream os=socket.getOutputStream(); 
      os.write(byteArray); 
      os.flush(); 

      //Read response by getting input stream from socket. 

     } 
    } 
} 
関連する問題