我想接收正在打開的相機的廣播。如果某些條件成立,我想阻止該進程。應用程序未接收正在打開的相機的廣播
我沒有得到相機被打開的廣播。 (我可以播放新的圖像拍攝,這不是我想要的。)
這是我的一塊manifest文件:
<receiver
android:name=".HardwareActionListener"
android:enabled="true"
android:exported="true" >
<intent-filter android:priority="1000" >
<action android:name="android.intent.action.CAMERA_BUTTON" >
</action>
</intent-filter>
</receiver>
這是我的一塊文件HardwareActionListener.java
System.out.println("Intent action: " + intent.getAction());
if (intent.getAction().equalsIgnoreCase(
"android.intent.action.CAMERA_BUTTON")) {
System.out.println("CAMERA Button broadcast received and aborted");
if(some_condition_true)
abortBroadcast();
}
我在谷歌和stackverflow上搜索了一整天。我嘗試了每一種組合。 但是我沒有得到相機被打開的廣播。
我正在使用Samsung Galaxy Tab進行測試。沒有硬件攝像頭按鈕。
而在this question一個答案說
您不能:意圖僅由硬件相機按鈕產生, 不是由相機應用中的按鈕。
那麼我的清單文件的意圖過濾器有什麼問題嗎?還是由於設備沒有硬件攝像頭按鈕而導致問題?
您的意思是說,您希望在默認相機應用程序打開時收到通知?或者當任何應用程序嘗試訪問攝像頭預覽?在任何情況下,「android.intent.action.CAMERA_BUTTON」的名稱都很清楚:當按下物理照相機按鈕時(如果有),您會收到通知 – fiddler
當用戶嘗試打開照相機時。 –
攝像頭有很多種方式可以「打開」。當任何應用程序顯示相機預覽時,我不認爲可以通知您。 – fiddler