แอปพลิเคชันไม่ได้รับการถ่ายทอดเมื่อมีการเปิดกล้อง

ฉันต้องการรับการถ่ายทอดการเปิดกล้อง ฉันต้องการบล็อกกระบวนการนั้นหากเงื่อนไขบางประการเป็นจริง

ฉันไม่ได้รับการถ่ายทอดเมื่อมีการเปิดกล้อง (ฉันสามารถออกอากาศเพื่อถ่ายรูปใหม่ได้ซึ่งไม่ใช่สิ่งที่ฉันต้องการ)

นี่คือส่วนหนึ่งของไฟล์รายการของฉัน:

<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 ในการทดสอบ ซึ่งไม่มีปุ่มกล้องฮาร์ดแวร์

และหนึ่งคำตอบในคำถามนี้บอกว่าอย่างนั้น

คุณไม่สามารถ: เจตนาจะถูกสร้างขึ้นโดยปุ่มกล้องฮาร์ดแวร์เท่านั้น ไม่ใช่โดยปุ่มภายในแอปกล้อง

มีอะไรผิดปกติในตัวกรองเจตนาของไฟล์ Manifest ของฉันหรือไม่ หรือเป็นปัญหาเนื่องจากอุปกรณ์ไม่มีปุ่มกล้องฮาร์ดแวร์?


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 ผู้ดูแลระบบอุปกรณ์เพื่อควบคุมการเข้าถึงกล้อง

นี่คือส่วนหนึ่งของไฟล์รายการของฉัน

คุณกำลังฟังการกดปุ่ม CAMERA ซึ่งอาจเกี่ยวข้องหรือไม่เกี่ยวข้องกับแอปกล้องถ่ายรูป และไม่มีอยู่ในอุปกรณ์ทั้งหมด

แต่ฉันไม่ได้รับการถ่ายทอดเมื่อมีการเปิดกล้อง

นั่นเป็นเพราะไม่มีการถ่ายทอดดังกล่าว

และคำตอบหนึ่งในคำถามนี้บอกว่า "คุณทำไม่ได้: เจตนานั้นถูกสร้างขึ้นโดยปุ่มกล้องฮาร์ดแวร์เท่านั้น ไม่ใช่โดยปุ่มภายในแอปกล้อง"

คำตอบนั้นถูกต้อง

person CommonsWare    schedule 19.11.2012
comment
ขอบคุณ. สามารถทำได้โดยใช้ Device Policy Manager - person MysticMagicϡ; 20.11.2012