5

Tôi viết 1 ứng dụng cho Android 4.0 và chương trình được bắt đầu qua đài phát. Mã của tôi là dưới đây:Không thể nhận chương trình phát sóng trong ICS

Trong AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" /> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <receiver android:name="com.Android.Exercise.StartUpReceiver" 
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
       <!--<action android:name="StartInstrument" /> 
       <action android:name="PrintControlName" />  -->  
      </intent-filter> 
     </receiver>   
     <service android:enabled="true" android:name="StartAUT_Service"> 
      <intent-filter> 
       <action android:name="com.Android.Exercise.StartAUT_Service" /> 
      </intent-filter> 
     </service> 
    </application> 

Trong lớp StartUpReceiver:

public class StartUpReceiver extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     Log.i("Broadcast", "onReceive"); 

     Intent i = null; 

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      i = new Intent(context, StartAUT_Service.class);   
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     } 

     context.startService(i);    
    }  
} 

Sau khi tôi khởi động lại điện thoại của tôi, tôi không thể nhận broardcast. Xin hãy giúp tôi, cảm ơn rất nhiều

Trả lời

1

Hãy thử

<uses-permission android:name="android.intent.action.BOOT_COMPLETED" /> 

dưới Internet sử dụng phép

+0

Mặc dù tôi thêm thẻ của bạn nhưng tôi vẫn không thể nhận lệnh phát. Trong Android 2.2, nó ổn, nhưng android 4.0, nó vẫn không hoạt động. – user1266236

+0

Tôi đã khởi động lại thiết bị nhưng vẫn không chạy chương trình phát sóng của tôi.hix | T_T | – user1266236

+0

bạn có xóa thẻ quyền đó trong hoạt động không? –

7

Bắt đầu từ Android 3.0, trạng thái ứng dụng đã được giới thiệu. Tất cả các ứng dụng hiện được cài đặt với trạng thái được đặt thành không hoạt động, khiến tất cả các BroadcastReceivers không hoạt động.

Để làm cho trạng thái hoạt động, người dùng phải khởi chạy ứng dụng ít nhất một lần và hệ điều hành sẽ tự động kích hoạt ứng dụng và tất cả các BroadcastReceivers của nó.

Trong trường hợp của bạn, bạn cần thêm hoạt động, có thể là thỏa thuận cấp phép hoặc trang trợ giúp. Thao tác này sẽ tạo biểu tượng cho ứng dụng của bạn để người dùng nhấp và kích hoạt ứng dụng.

Lưu ý rằng trạng thái của ứng dụng sẽ được đặt thành không hoạt động nếu người dùng buộc đóng ứng dụng.

tôi phải đối mặt với một vấn đề tương tự: Android ICS not receiving data sms

Tôi hy vọng rằng giải quyết vấn đề của bạn hoặc ít nhất đưa bạn đi đúng hướng.

regards, Ahmad

0

Bạn cần phải làm như sau để khắc phục tính năng bảo mật this.

Nếu mức API của bạn là dưới 12, sau đó đặt sau để ý định của bạn trước khi phát sóng nó:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 32); 

Nếu không, thêm lá cờ sau để bao gồm các gói được đánh dấu là Ngưng quá:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent. FLAG_INCLUDE_STOPPED_PACKAGES); 
Các vấn đề liên quan