2011-08-22 34 views
10

Tôi bị bối rối. Tôi đang cố gắng định cấu hình ứng dụng của mình để phản hồi thẻ SD trở nên khả dụng/chuyển sang chế độ ngoại tuyến, nhưng bộ thu phát sóng của tôi không bao giờ được gọi!MEDIA_MOUNTED chương trình phát sóng không được nhận

tôi có thể thấy sự kiện này được phát sóng, và các ứng dụng khác đáp ứng:

08-21 23:43:04.405: DEBUG/Ringer(275): -- intent.getAction() =android.intent.action.MEDIA_MOUNTED 

Và biểu hiện của tôi đã nhận tuyên bố:

<receiver android:name=".Test" android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
     </intent-filter> 
    </receiver> 

Và nhận của tôi có một phương pháp onReceive:

public class Test extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.d("#########", "##############################################################"); 
     Log.d("#########", "Obligitory snarky and/or funny logging comment..."); 
     Log.d("#########", "##############################################################"); 
    } 
} 

Tuy nhiên, & ^% $ 'ing sẽ không gây ra Test.onReceiv e() để bắn. Có suy nghĩ gì không?

Trả lời

39

Bạn không thể nghiêm túc. Rõ ràng tôi cần thêm một bộ lọc bổ sung cho kiểu dữ liệu.

Rời câu trả lời cho "các chàng bên cạnh" ...

<receiver android:name=".Test" android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
     <data android:scheme="file"/> 
    </intent-filter> 
</receiver> 
+1

Có vẻ như các tài liệu chính thức bị thiếu lược đồ, điều này chắc chắn gây phiền toái vì mã của chúng sẽ không thực sự hoạt động. http://developer.android.com/reference/android/os/Environment.html – smith324

+1

Đối với những người liên kết máy thu động, bạn có thể gọi addDataScheme ("tệp") trên cá thể IntentFilter của bạn. – dhakim

8

Bạn hãy thử thêm thẻ <data android:scheme="file" /> trong <intentfilter>, nếu không thực hiện đăng ký tại thời gian chạy.
Khi chạy, hãy tạo đối tượng của bộ thu phát sóng của bạn và chuyển nó đến registerReceiver(obj).

+0

Cảm ơn, tôi đã tìm ra một vài phút trước khi bạn đăng. –

+0

Sau đó, bạn nên thêm điều này vào danh sách câu hỏi đã trả lời. – Ronnie

+1

Umm, đó là ... và trước khi bạn gửi câu trả lời. Bạn đã thêm một câu trả lời khoảng 15 phút sau khi tôi đã làm. –

Các vấn đề liên quan