2017-08-08 14 views
0

カメラから撮影した画像の場所を取得しようとしています。私はExifのインターフェイスをしようとしたとき、まだAndroidでカメラから撮影した画像の現在位置を取得する方法

Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
          startActivityForResult(i, 100); 
    @Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 100 && resultCode == RESULT_OK && data != null) { 
     // Let's read picked image data - its URI 
     Uri pickedImage = data.getData(); 
     // Let's read picked image path using content resolver 
     String[] filePath = {MediaStore.Images.Media.DATA}; 
     Cursor cursor = getContentResolver().query(pickedImage, filePath, null, null, null); 
     cursor.moveToFirst(); 
     img1 = cursor.getString(cursor.getColumnIndex(filePath[0])); 


     ExifInterface exif = null; 
     try { 
      exif = new ExifInterface(img1); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     String lat = ExifInterface.TAG_GPS_LATITUDE; 
      String lat_data = exif.getAttribute(lat); 
      Log.e("MYDATA", lat_data); 
      cursor.close(); 
      Toast.makeText(this, "Image Uploaded", Toast.LENGTH_SHORT).show(); 

    } 
+0

をInputStreamのでExifInterfaceを構築

@Override public void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (resultCode != Activity.RESULT_OK) { return; } final Uri originalUri = intent.getData(); try { final InputStream inputStream = getContext().getContentResolver().openInputStream(originalUri); final android.support.media.ExifInterface exif = new android.support.media.ExifInterface(inputStream); final double[] latLong = exif.getLatLong(); Log.v(LOG_TAG, "Image selected at position: " + latLong[0] + " : " + latLong[1]); } catch (IOException e) { Log.w(LOG_TAG, "Error when getting location from image", e); } } 

サポートlibにインポートする...助けphotos.Please誰かからNULL値を返しますお使いのコードを共有してみてください – sumit

+0

ファイルに実際に位置情報があることを確認してください。ほとんどの時間はアンドロイドデバイスがカメラアプリでデフォルトで無効になっています。 – smora

+0

実際には、アンドロイドデバイスでジオテージを有効にしています。 –

答えて

0

使用するコンテンツリゾルバが

compile 'com.android.support:exifinterface:x.x.x' 
+0

final double [] latLong = exif.getLatLong(????);この引数に適用された内容 –

+0

ドキュメンテーションAPIをチェックすると、メソッドがAPIの異なるバージョンで変更されました。サポートバージョンのインポートを使用するandroid.support.media.ExifInterface; – smora

+0

ExifInterface exif = null; { exif = new ExifInterface(img1); } catch(IOException e){ e.printStackTrace(); } 文字列lat = ExifInterface.TAG_GPS_LATITUDE; 文字列lat_data = exif.getAttribute(lat); Log.e( "MYDATA"、lat_data); 文字列ログ= ExifInterface.TAG_GPS_LONGITUDE; 文字列log_data = exif.getAttribute(log); Log.e( "MYDATA1"、log_data);ありがとう私はこのコードを使用して解決策を得ています –

関連する問題