0

ACTION_GET_CONTENTインテントを使用して選択したビデオの緯度/経度を取得しようとしています。次のコードがあります。

int data_column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
int lat_column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.LATITUDE);
int long_column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.LONGITUDE);

LATITUTDE/LONGITUDE 列で次の例外が発生します。

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { dat=content://media/external/video/media/1749 flg=0x1 }} to activity {}: java.lang.IllegalArgumentException: **column 'latitude' does not exist**

ビデオ/画像の緯度/経度を取得した経験がある人からのフィードバックをお待ちしています

4

1 に答える 1

2

METADATA_KEY_LOCATION Android では、クラス内で呼び出される新しい定数を使用して MediaMetadataRetriever、アプリが画像や動画の位置情報にアクセスできるようにします。ドキュメントへのリンクはこちら

例(テストされていませんが、まとめられています):

 MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();  
 mediaMetadataRetriever.setDataSource(_currentVideoFile.getAbsolutePath());  
 String location = mediaMetadataRetriever  
                .extractMetadata(MediaMetadataRetriever.METADATA_KEY_LOCATION);

ドキュメントによると、これはここで"-90.0000+180.0000"説明されているように、文字列として緯度/経度を与えるはずです

それが役立つことを願っています。

于 2013-05-13T18:15:54.613 に答える