2011-04-01 58 views
0

下面的代碼請求一張新圖片,裁剪並將數據寫入臨時文件。它在Android 2.2.1的HTC Desire HD上運行得非常好。Android:相機應用在ACTION_IMAGE_CAPTURE上被某些電話上的裁剪破壞

但是,在華爲Ideos與Android 2.2相機應用程序停止(應用程序相機意外停止),我的應用程序繼續沒有任何照片拍攝。用戶使用EVO 4G,Android 2.3.3報告了類似的問題(可能相同)。

在Ideos手機上,我沒有在拍照後看到裁剪框,所以我猜這就是相機應用程序中斷的地方,我想這可能取決於相機應用程序的特定設備實現。任何人都有解決方案?

  case 1: 
      Uri mSavedUri = Uri.fromFile(new File(basepath + "/temp" + imgExtension)); 
       Intent newphoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
       newphoto.putExtra("crop", "true"); 
       newphoto.putExtra("outputX",   imageSizeX); 
       newphoto.putExtra("outputY",   imageSizeY); 
       if (imageAspect == 0) { 
        newphoto.putExtra("aspectX",   1); 
        newphoto.putExtra("aspectY",   1); 
       } 
       if (imageAspect == 1) { 
        newphoto.putExtra("aspectX",   4); 
        newphoto.putExtra("aspectY",   3); 
       } 
       if (imageAspect == 2) { 
        newphoto.putExtra("aspectX",   3); 
        newphoto.putExtra("aspectY",   4); 
       }   
       newphoto.putExtra("scale",   true); 
       newphoto.putExtra("noFaceDetection", true); 
       newphoto.putExtra("setWallpaper", false); 
       newphoto.putExtra("output",mSavedUri); 
       startActivityForResult(newphoto, NEW_PHOTO);     
       break; 

回答

0

Android攝像頭的實現方式有很大的不同,並且不支持所有的選項。嘗試從意圖刪除所有不相關的設定 - 他們 可能會混淆一些相機應用

我的第一人選是:noFaceDetection & setWallpaper

+0

感謝康斯坦丁。幾天後,我將着手開發應用程序的下一個版本,我一定會嘗試刪除noFaceDetection並查看會發生什麼。不幸的是,setWallpaper false是相關的,因爲有些手機會將圖片設置爲牆紙。 – 2011-04-01 18:14:28