2012-01-18 17 views
0

ここでのコードの提案に基づいて、私はMediaStoreから画像を抽出しようとしました。しかし、実際の写真を選択すると、getContentResolver()。query()は常にnullを返します。理由を理解できません...MediaStoreから返されない選択された画像

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

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.v(TAG,"onActivityResult: requestCode = "+requestCode+", resultCode = "+requestCode); 
    if (requestCode == SELECT_PHOTO) { 
     Uri selectedImage = data.getData(); 
     String[] filePathColumn = {android.provider.MediaStore.Images.Media.DATA}; 
     Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
     if (cursor != null) { 
      Log.v(TAG,"onActivityResult: count = "+cursor.getCount()); 
      if (cursor.getCount() == 1) { 
       cursor.moveToFirst(); 
       int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
       String filePath = cursor.getString(columnIndex); 
       Log.v(TAG,"onActivityResult: filePath = "+filePath); 
      } 
      cursor.close(); 
     } 
    } 
} 
+0

あなたはMediaStoreのドキュメントを見ましたか?これはあなたに手がかりを与えるかもしれません。 MediaStore.javaのソースを見る方が良いでしょう。 – JoxTraex

+0

MediaStoreのソースを見ますか?私はちょうど初心者です。私はAndroidプログラミングを始めたばかりです。 –

答えて

0

エミュレータまたはデバイスを再起動(またはSDカードをアンインストール/インストール)してみますか? 誰かが、AndroidシステムがSDカードを再起動またはリロードするときにAndroidシステムがメディアをスキャンすると教えてください...データベースが変更されていない可能性があります。

+0

再起動しました。違いはありません。他のアイデア? –

+0

私の愚かなエラー。本当に馬鹿。 –

+0

何が間違っています... SQLは間違っていましたか? – JohnCookie

関連する問題