Приложение не получает трансляцию для открытой камеры

Я хочу получать трансляцию для открытия камеры. Я хочу заблокировать этот процесс, если какое-то условие истинно.

Я не получаю трансляцию об открытии камеры. (Я могу получить трансляцию для нового снимка, а это не то, чего я хочу.)

Это часть моего файла манифеста:

<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();
        }

Я искал это в Google и stackverflow целый день. И я пробовал каждую комбинацию. Но я не получаю трансляцию об открытии камеры.

Я использую вкладку Samsung Galaxy для тестирования. У которого нет аппаратной кнопки камеры.

И один ответ в этот вопрос говорит, что

Вы не можете: намерение генерируется только аппаратной кнопкой камеры, а не кнопкой в ​​приложении камеры.

Итак, есть ли что-то не так в фильтре намерений моего файла манифеста? Или это проблема из-за того, что на устройстве нет аппаратной кнопки камеры?


person MysticMagicϡ    schedule 19.11.2012    source источник
comment
Вы имеете в виду, что хотите получать уведомления, когда открыто приложение камеры по умолчанию? Или когда какое-либо приложение пытается получить доступ к предварительному просмотру камеры? В любом случае имя android.intent.action.CAMERA_BUTTON вполне понятно: вы получаете уведомление, когда нажата кнопка физической камеры (если есть)   -  person sdabet    schedule 19.11.2012
comment
Когда пользователь пытается открыть камеру.   -  person MysticMagicϡ    schedule 19.11.2012
comment
Есть много способов открыть камеру. Я не думаю, что вы можете как-то уведомляться, когда какое-либо приложение отображает предварительный просмотр камеры.   -  person sdabet    schedule 19.11.2012
comment
В устройстве есть значок для приложения камеры со всеми другими приложениями. Я хочу заблокировать пользователя, чтобы открыть эту камеру   -  person MysticMagicϡ    schedule 19.11.2012
comment
@MysticMagicϡ, не могли бы вы вкратце объяснить, как вы это сделали с помощью Device Policy Manager?   -  person Yogesh Seralia    schedule 07.10.2015


Ответы (1)


Я хочу получать трансляцию для открытия камеры.

Нет такой передачи.

Я хочу заблокировать этот процесс, если какое-то условие истинно.

Пожалуйста, используйте API администратора устройства для управления доступом к камере.

Это часть моего файла манифеста

Вы прослушиваете нажатия кнопки КАМЕРА, которые могут иметь или не иметь никакого отношения к приложению камеры и существуют не на всех устройствах.

Но я не получаю трансляцию об открытии камеры.

Потому что нет такой трансляции.

И один ответ на этот вопрос гласит: «Вы не можете: намерение генерируется только аппаратной кнопкой камеры, а не кнопкой в ​​приложении камеры».

Этот ответ правильный.

person CommonsWare    schedule 19.11.2012
comment
Спасибо. Удалось сделать это с помощью Device Policy Manager - person MysticMagicϡ; 20.11.2012