2011-07-20 24 views
7

Tôi đang cố gắng bắt đầu thông báo trên thanh trạng thái từ một bộ thu phát sóng và sau đó dừng nó từ một bộ thu phát sóng khác nhưng tôi đang gặp sự cố. Tôi muốn bắt đầu thông báo trên thanh trạng thái khi USB được kết nối và sau đó khi USB bị ngắt kết nối, tôi muốn dừng lại. Tôi có hai bộ thu được thiết lập và làm việc chỉ đang vật lộn với việc khởi động và dừng lại từ một bộ thu ở đây là mã Tôi hiện cóBắt đầu và dừng một thông báo từ bộ thu sóng phát sóng

Lỗi duy nhất với mã của tôi là dòng myNotificationManager = (NotificationManager) getSystemService(context.NOTIFICATION_SERVICE); lỗi chỉ cho biết getSystemService không xác định và nó muốn tạo phương thức mà tôi đoán có nghĩa là người nhận không có hỗ trợ cho phương thức đó như hoạt động vì vậy tôi nên làm gì để tạo và dừng thông báo từ những người nhận cảm ơn bạn vì bất kỳ sự trợ giúp nào

public class USBConnect extends BroadcastReceiver { 

public NotificationManager myNotificationManager; 
public static final int NOTIFICATION_ID = 1; 

@Override 
public void onReceive(Context context, Intent intent) { 

    myNotificationManager = (NotificationManager) getSystemService(context.NOTIFICATION_SERVICE); 

     CharSequence NotificationTicket = "USB Connected!"; 
     CharSequence NotificationTitle = "USB Connected!"; 
     CharSequence NotificationContent = "USB is Connected!"; 

     Notification notification = new Notification(R.drawable.usbicon, NotificationTicket, 0); 
     Intent notificationIntent = new Intent(context, MyClass.class); 
     PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 
     notification.setLatestEventInfo(context, NotificationTitle, NotificationContent, contentIntent); 
     notification.flags |= Notification.FLAG_ONGOING_EVENT; 
     myNotificationManager.notify(NOTIFICATION_ID, notification); 
     } 
} 

Và sau đó là rec eiver khi nó ngắt kết nối này, tôi tin là tốt và nên làm việc tôi nghĩ rằng vấn đề của tôi là duy nhất trong lớp USBConnect

public class USBDisCon extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.cancel(USBConnect.NOTIFICATION_ID); 
    } 
} 

Trả lời

9

Vâng tôi đã kết thúc tìm nó ra bản thân mình để tham khảo trong tương lai cho những người có cùng vấn đề của tôi tất cả tôi cần làm là thêm bối cảnh trước getSystemService đây là mã của tôi mà làm việc

public class USBConnect extends BroadcastReceiver { 

public NotificationManager myNotificationManager; 
public static final int NOTIFICATION_ID = 1; 

@Override 
public void onReceive(Context context, Intent intent) { 

    myNotificationManager = (NotificationManager) getSystemService(context.NOTIFICATION_SERVICE); 

     CharSequence NotificationTicket = "USB Connected!"; 
     CharSequence NotificationTitle = "USB Connected!"; 
     CharSequence NotificationContent = "USB is Connected!"; 

     Notification notification = new Notification(R.drawable.usbicon, NotificationTicket, 0); 
     Intent notificationIntent = new Intent(context, MyClass.class); 
     PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 
     notification.setLatestEventInfo(context, NotificationTitle, NotificationContent, contentIntent); 
     notification.flags |= Notification.FLAG_ONGOING_EVENT; 
     myNotificationManager.notify(NOTIFICATION_ID, notification); 
     } 
} 

Và sau đó người nhận khi nó ngắt kết nối này tôi tin là tốt và nên làm việc tôi nghĩ rằng vấn đề của tôi là duy nhất trong lớp USBConnect

public class USBDisCon extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.cancel(USBConnect.NOTIFICATION_ID); 
    } 
} 
0

getSystemService undefined nhiều khả năng có nghĩa là bạn chưa nhập android.app.Activity (getSystemService được định nghĩa trong android.app.Activity).

+0

Tôi đã nhập thực sự và tôi vẫn nhận được rằng nó chưa được xác định và nó muốn tạo phương thức – user577732

+0

Không ai có bất kỳ ý tưởng nào? sẽ thực sự đánh giá cao một số trợ giúp – user577732

3

tôi gặp phải t vấn đề của anh ấy. Tôi nghĩ rằng người dùng quên cập nhật mã trong câu trả lời. context cần phải ở TWICE! Tôi đọc nó lần đầu tiên!

myNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 

Hy vọng điều này sẽ giúp bất kỳ ai nhầm lẫn tương tự!

0

Đây là cách sử dụng thông báo từ broadcastReceivers:

NotificationManager mgr = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 

Schedule báo động từ BroadcastReceivers:

AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 

Bạn cần phải sử dụng tiền tố bối cảnh luôn!

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