-1

我使用相機意圖通過使用以下代碼如何在沒有使用相機預覽的情況下拍照?

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
try { 
     getApplication().startActivity(intent); 
    } catch (final ActivityNotFoundException e) { 
    e.printStackTrace(); 
    } catch (final Exception e) { 
    e.printStackTrace(); 
    } 

拍照在服務它可以拍攝照片;但是,每次顯示預覽GUI(已捕獲圖片,保存和放棄按鈕)。我想忽略這一步,只是喜歡默認的捕捉攝像頭(捕捉和保存而不預覽)。我如何修改代碼?謝謝大家

請注意:我不想用camera2API來製作一個新的應用程序。我想使用默認的相機應用程序。有人說

「的相機應用程序不給其他應用程序禁用確認畫面的選項,即使相機應用程序本身不顯示確認屏幕。

因此,這是不能顯示確認屏幕。「

它在過去看起來很新。我正在使用Android 5.0。現在可能嗎?

+0

參考http://stackoverflow.com/questions/16297606/android-take-camera-picture-without-save-delete-confirmation –

+0

不,我不想用camera2API – Jame

+0

這是不可能的。並且不應該有可能,因爲沒有人需要沒有相機許可的應用程序在後臺拍照。 –

回答

1

這是不可能的。

您無法控制默認相機應用程序的行爲。更糟糕的是,你不知道將用什麼應用程序來滿足你的意圖。最終用戶擁有安裝替代相機應用程序的全部權力,或者可能安裝了僞裝成相機應用程序的惡意軟件(相機應用程序意味着此清單聲明其可以執行ACTION_IMAGE_CAPTURE)。但首先,ODM預安裝相機應用程序,這些應用程序的行爲與AOSP相機不一定相同。

這樣的應用程序可能會按照ACTION_IMAGE_CAPTURE合同的意圖迴應,但不能保證。 SO中充滿了有關預裝攝像頭應用程序無法正確識別附加信息或產生意外結果的情況的問題。

即使結果看起來正確,您的應用程序也無法知道照片是否實際上由相機拍攝。如果相機應用程序選擇,它可能是來自畫廊的圖像或僞造的圖像。

+0

感謝Alex Cohn,爲了控制拍攝的照片,我成功地使用了命令行'su「,」-c「,」input keyevent「+ KeyEvent.KEYCODE_CAMERA'。你知道任何keyevent自動保存圖像?我在根設備上運行(ADB Shell) – Jame

+0

我找到了解決方案,通過添加Action intent.setAction(「android.media.action.STILL_IMAGE_CAMERA」);'它在我的S5手機中運行良好。我不確定其他手機。 – Jame

相關問題