5

Tôi có một BackgroundReceiver thiết lập để nhận các android.intent.action.USER_PRESENT trong file manifest theo:Intent.ACTION_USER_PRESENT không nhận được trên Honeycomb hoặc (Samsung) thiết bị ICS

<receiver android:name="com.demo.MyBroadcastReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.USER_PRESENT" /> 
     </intent-filter> 
    </receiver> 

ghi đè onReceive(Context, Intent) Phương pháp của tôi rất đơn giản:

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    if (intent != null) 
    { 

     if (Intent.ACTION_USER_PRESENT.equals(intent.getAction()) 
     { 
      // wrapper for Log.d(String, String) 
      Dbug.log("MyBroadcastReceiver: [" + intent.getAction() + "]"); 

      // this calls a service 
      serviceExample(context, intent); 
     } 
    } 
} 

  • này thử nghiệm một cách hoàn hảo trên 2.1, 2.2 & 2. 3 thiết bị (HTC Desire, HTC WildFire, Motorola Razr).
  • Điều này dường như không hoạt động trên các thiết bị HoneyComb (Samsung Galaxy Tab 10.1) hoặc ICS (Samsung Galaxy Nexus).
  • Theo lỗi này (USER_PRESENT never fires on honeycomb and ICS when keyguard is disabled), tôi đặt trình bảo vệ phím trên các thiết bị không thành công. Nó không giúp được gì.

Câu hỏi:

  1. Có một số thủ thuật để sử dụng những hành động ý định trên Android 3.x 4.x &?
  2. Có lẽ đây là sự cố Samsung đã biết?
  3. Hoặc có lẽ có một số cài đặt thiết bị tôi đã bỏ qua trên các thiết bị này?
+0

câu hỏi này ngụ ý rằng nó có thể được thực hiện: [Đưa nhiệm vụ lên phía trước trên android.intent.action.USER_PRESENT] (http://stackoverflow.com/questions/8750854/bring-task-to-front-on-android- intent-action-user-present) –

Trả lời

2

Có một bình luận bởi ubuntudroid về câu trả lời này (android app with service only) nói rằng bạn cần phải bắt đầu hoạt động của bạn ít nhất một lần trước khi nó sẽ nhận được đúng ý đồ cần thiết.

Dường như được giới thiệu trong Android 3.0.

Tôi chưa thử nghiệm lý thuyết này, nhưng nó sẽ giải thích những gì bạn đang thấy.

+0

Tôi đã chạy vào hành vi tương tự mà sẽ được giải thích bằng cách này. Tôi đã tự động triển khai một APK cho một thiết bị và sau đó tương tác với nó thông qua bộ thu phát sóng. (Android 5.1.1). Hành động USER_PRESENT đã được nhận liên tục. –

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