2011-12-04 43 views
7

我只想確認在Android上沒有SD卡時不能使用相機?在Android上使用沒有SD卡的相機

我火MediaStore.ACTION_IMAGE_CAPTURE意圖使用攝像頭,並試圖將讓相機的圖像存儲在應用程序數據文件夾

ContentValues values = new ContentValues(); 
    values.put(Media.TITLE, "Image"); 
    values.put(Images.Media.BUCKET_ID, path.hashCode()); 
    values.put(Images.Media.BUCKET_DISPLAY_NAME, name); 

    values.put(Images.Media.MIME_TYPE, "image/png"); 
    values.put(Media.DESCRIPTION, "Image capture by camera"); 
    values.put("_data", Constants.imagePath); 

    Uri uri = getContentResolver().insert(
      Media.EXTERNAL_CONTENT_URI, values); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 

    startActivityForResult(cameraIntent, PICTURE_ACTIVITY); 

我以爲相機不能訪問的應用程序數據文件夾

所以沒有SD卡就沒有辦法使用相機?

回答

0

沒有SD卡的相機應用將顯示:

請使用相機前插入SD卡。

所以不,不可能。

編輯: 檢查Camera應用程序源代碼,updateStorageHint(int remaining)表明,它會一直顯示「無存儲」的文字,如果沒有SD卡(也檢查MenuHelper calculatePicturesRemaining())。

+0

感謝您的回答 – user964283

0

http://developer.android.com/guide/topics/media/camera.html#saving-media表明,它有可能將圖像保存到比SD卡的其他位置:

媒體文件... 應該被 保存到設備的外部存儲目錄(SD卡)

(我的重點)

使用內部存儲,但是,會迅速耗盡什麼通常是一個非常有限資源有限,意味着這些文件只能通過手機隨身攜帶,而不能移除SD卡。

我會建議,爲了可靠性和「最佳實踐」(我不喜歡的一個短語)的利益,請遵循該指南中的建議。

看起來,內置的相機應用程序遵循這些最佳做法,但它可能會寫一個沒有的應用程序。

+0

想我只會讓應用程序的該功能需要一個SD卡作爲我可以想象幾乎家家都有SD卡在他們的Android設備 – user964283

+1

並非所有的Android設備都具有microSD插槽。有些具有「內部存儲」或「內部SD」或其他「USB存儲」。這些設備仍然可以保存圖片。 –