2014-10-10 102 views
1

我有一個簡單的Android應用程序,試圖拍攝一張照片並將其作爲HTTP POST與多部分數據發送到服務器。問題在於Androids Intent在某些手機上的行爲不同。當我運行Android的意圖ACTION_IMAGE_CAPTURE

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 0); 

上的HTC One(安卓4.1.1)和索尼的Xperia Z1(安卓4.4.4),它存儲了圖像中的畫廊,並呼籲類似下面的工作:

data.getData().getPath(); 

(數據是意向的一個實例),而當我運行LG的Nexus 5(4.4.4的Android)相同的代碼時,圖像不被存儲,並且

data.getData(); 

返回NULL。

我需要的是一種方式來存儲圖像(暫時),所以我可以將其傳輸到服務器。

回答

1

看起來像最近的Android股票相機可能有一個錯誤,請在Android上see this issue report。根據該錯誤,相機意圖返回的data字段可能會以默認行爲返回null。 (不使用MediaStore.EXTRA_OUTPUT)。

,確保您始終獲得圖像,分配自己的文件和pass that uri in camera intent extras as MediaStore.EXTRA_OUTPUT

在分配一個臨時的圖像文件的最佳做法是,以確保基本安裝介質,請參閱this sample code snippet on android developer site。在成功完成相機意圖之後,請使用您分配的文件uri ...不要使用getData(可能爲null)。

+0

謝謝,這工作。 – Limon 2014-10-10 22:35:10

相關問題