2010-01-20 7 views
7

Tôi muốn làm điều gì đó sau khi điện thoại được đưa vào bộ sạc. Vì vậy, tôi tạo ChargingOnReciever:Android: Sự kiện ACTION_POWER_CONNECTED không được gửi đến BroadcastReceiver

public class ChargingOnReceiver extends BroadcastReceiver { 
    public void onReceive(Context context, Intent intent) { 
     context.startActivity(someActivity); 
     Log.d(TAG, "Phone was connected to power"); 
    } 
} 

và tôi muốn nhận của tôi để nghe android.intent.action.ACTION_POWER_CONNECTED, vì vậy tôi đặt này vào manifest:

<reciever android:name=".ChargingOnReceiver" 
      android:enabled="true" 
      android:exported="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> 
    </intent-filter> 
</reciever> 

Nhưng ChargingOnReceiver được dường như không bắt đầu khi tôi đặt G1 của tôi để sạc (kết nối với máy tính xách tay của tôi qua cáp USB). Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.

Trả lời

25

Máy thu, không nhận! Tôi mất 5 giờ để tìm lỗi ngu ngốc này. Tôi nghĩ rằng plugin Eclipse của Eclipse nên thực hiện một số cú pháp kiểm tra trong tệp kê khai xml.

+1

tôi cũng lãng phí một ngày của mình về vấn đề này – user3233280

0
  1. Không bắt đầu hoạt động từ BroadcastReceiver.

  2. Bạn đã kiểm tra LogCat tại thời điểm bạn cắm cáp USB để xem liệu có bất kỳ thông điệp đã đăng nhập nào có thể giải thích được sự cố của bạn không?

+0

1. Tôi chỉ bắt đầu hoạt động cho mục đích thử nghiệm, để xem liệu onReceive có được gọi hay không. 2. Thật không may tôi không thể tìm thấy bất cứ điều gì hữu ích trong các thông điệp tường trình ... – fhucho

+0

@CommonsWare u có thể giải thích lý do tại sao chúng ta không nên bắt đầu hoạt động từ phát sóng thu – user3233280

+0

@ user3233280: Hiếm khi, nếu bao giờ, đó sẽ là những gì người dùng muốn, nếu bạn đang popping lên một hoạt động không dựa trên đầu vào của người dùng. Người dùng có thể rất khó chịu nếu bạn làm gián đoạn trò chơi của họ và họ có thể rất nguy hiểm nếu bạn làm gián đoạn ứng dụng điều hướng của họ. Nếu không có gì khác, hãy sử dụng 'Thông báo' toàn màn hình. – CommonsWare

-1

Trong tài liệu, hãy viết android.intent.action.POWER_CONNECTED mà không cần ACTION_.

+0

Nó phải là . Tôi không hiểu những gì bạn định nói. – prageeth