Tôi cần một số trợ giúp để hiểu khi nào tôi có thể mong đợi máy thu phát của tôi sẽ hoạt động khi vừa đăng ký trong tệp kê khai so với phải đăng ký từ hoạt động hoặc dịch vụ đang chạy.Broadcast Receiver Đăng ký trong Manifest vs. Activity
Vì vậy, ví dụ nếu tôi đăng ký một độc lập nhận với bộ lọc ý định sau nó hoạt động mà không cần phải là một tài liệu tham khảo dịch vụ/hoạt động với nó:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blk_burn.standalonereceiver"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name="TestReceiver">
<intent-filter>
<action android:name="android.media.AUDIO_BECOMING_NOISY"/>
</intent-filter>
</receiver>
</application>
</manifest>
Tuy nhiên nếu tôi thay android.media.AUDIO_BECOMING_NOISY
với android.intent.action.HEADSET_PLUG
người nhận không được kích hoạt (Android Documentation)
Từ những gì tôi tìm thấy trên trang này, bạn phải đăng ký người nhận này từ một hoạt động hoặc dịch vụ đã hoạt động để nó hoạt động (Post).
Bất cứ ai có cho tôi biết tại sao điều này không hoạt động khi chỉ điều chỉnh bộ lọc ý định của bạn trong biểu hiện và tại sao bạn cần phải có một dịch vụ đang chạy ở chế độ nền mà tài liệu tham khảo/đăng ký người nhận?
Có công việc xung quanh để tôi chỉ có thể đăng ký người nhận trong tệp kê khai của ứng dụng bằng bộ lọc ý định với
android.intent.action.HEADSET_PLUG
không?Làm cách nào để xác định hành động phát sóng nào từ android documentation cần phải có dịch vụ hoặc hoạt động đăng ký chúng so với chỉ có bộ lọc phù hợp trong tệp kê khai?
intent.Flag .. và tìm mã trong mã nguồn có ý nghĩa. thanks –
Đối với đoạn đầu tiên .. Tắt tắt :) –
Bạn có bất kỳ tài liệu chính thức nào để hỗ trợ tuyên bố của mình không (** Nếu người nhận của bạn được đăng ký trong tệp kê khai và ứng dụng của bạn không chạy, quy trình mới sẽ được tạo để xử lý phát sóng. **)? –