2012-07-14 30 views
7

我想從我的android設備獲取所有圖像/照片/壁紙與圖像保存路徑。如何從我的android設備獲取所有圖像和照片,而不是從SD卡?

我已經實現的代碼收集從SD卡的圖像,如下所示:

String[] mProjection = { 
    MediaStore.Images.Media._ID, 
    MediaStore.Images.Media.DATA 
}; 

mCursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
    mProjection, 
    null, 
    null, 
    MediaStore.Images.Media.DEFAULT_SORT_ORDER); 

從上面的代碼我可以能夠從SD卡retrive圖像而已。不過,如果圖像在設備手機存儲器可用,那麼我如何檢索圖像/照片/壁紙? 如果我使用INTERNAL_CONTENT_URI它沒有返回wallapers信息等圖像信息

請任何機構幫助我....

+1

你肯定有'壁紙「圖像(或任何其他圖像)存儲在內部存儲器中,可以通過您的應用程序訪問?如果你使用'INTERNAL_CONTENt_URI',它會返回任何東西嗎? – Squonk 2012-07-14 07:36:56

+0

http://stackoverflow.com/questions/7887078/android-saving-file-to-external-storage/7887114#7887114 – NagarjunaReddy 2012-07-14 07:18:37

+0

看看這個問題http://stackoverflow.com/questions/10370188/issue-with -read-file-from-internal-memory http://stackoverflow.com/questions/10378895/android-download-doc-pdf-from-the-internet-and-save-to-internal-memory http:// stackoverflow問題/ 7674784 /刪除文件在內存 - 從Android設備http://stackoverflow.com/questions/9306155/writing-reading-files-to-from-android-phones-internal-記憶我希望從這個任何查詢將有助於你 – Aamirkhan 2012-07-14 07:27:36

回答

0

試試這個答案這將工作:

public static final int GALLERY_CODE = 322; 

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(
    intent, 
    "Select Picture"), 
    GALLERY_CODE); 


@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
//Assinging on corresponding import 
super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == GALLERY_CODE && resultCode == RESULT_OK) { 
     Uri selectedImageUri = data.getData(); 
     selectedImagePath = getPath(selectedImageUri); 

     try { 

      //add logic for coping file 

     } catch (Exception e) { 
     } 
    } 
} 

public String getPath(Uri uri) { 
    String[] projection = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = managedQuery(uri, projection, null, null, null); 

    int column_index = cursor 
     .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 

    cursor.moveToFirst(); 
    return cursor.getString(column_index); 
} 
相關問題