2011-07-20 47 views
5

我做了一個程序,其主要功能是使用API​​來拍照並將它們存儲在我給出的路徑中。爲什麼通常在不同的Android手機上拍照很困難?

但是,當我在模擬器或手機上使用Google的原始ROM進行測試時,不同手機上的信息並不一致。

理論上。如果我給出了意圖的路徑,照片不應該出現在手機的默認圖庫中,但在MOTO Defy上,照片存儲在我的路徑和默認圖像目錄中。而在三星,我的應用程序從相機意圖返回時無聲無息地崩潰。只有在某些手機上,我可以通過按相機活動中的菜單按鈕來調出菜單。甚至其中一些將照片保存爲照相機活動設置菜單中設置的尺寸。

我認爲這是因爲製造商在手機上定製了ROM,所以相機活動的行爲不同。

任何人都知道如何避免這種情況?或者有沒有其他方式可以拍照而不是意圖"android.media.action.IMAGE_CAPTURE"

以下是如何拍照的代碼。

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getpath()+"_.jpg"))); 
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
    startActivityForResult(intent, 0); 

回答

1

是@balban沙阿所提供的工作方式都當我試圖相同。

最後我發現那是因爲不同的製造商定製了他們的Rom,包括相機應用程序,所以最好的方法是不要調用默認的相機應用程序,而是我們可以編寫一個活動使用hardware.camera來拍照。互聯網上也有很多這樣的例子。

0

嘗試使用此代碼保存爲其他照片拍攝設置相同

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(origImageFile)); 
startActivityForResult(cameraIntent, 0);