2014-07-10 14 views

Trả lời

8

Bất cứ khi nào bạn sử dụng addAction() trong NotificationCompat.WearableExtender, bạn không thực sự mở rộng các hành động (mặc dù tên), nhưng thay vì tách chúng thành hai danh sách, một cho điện thoại, và một cho đeo được.

  • Những hành động gia tăng đối với gốcNotificationCompat.Builder đang hiển thị trên thiết bị cầm tay.
  • Tác vụ được thêm trên WearableExtender được hiển thị trên thiết bị Android Wear.

Xem Specifying Wearable-only Actions:

Nếu bạn muốn những hành động có sẵn trên wearable là khác nhau từ những người trên thiết bị cầm tay, sau đó sử dụng WearableExtender.addAction(). Khi bạn thêm hành động bằng phương pháp này, thiết bị có thể đeo không hiển thị bất kỳ hành động khác được thêm vào với NotificationCompat.Builder.addAction(). Đó là , chỉ các hành động được thêm với WearableExtender.addAction() xuất hiện trên thiết bị đeo được và chúng không xuất hiện trên thiết bị cầm tay.

Do đó, để có hành động chỉ dành cho thiết bị cầm tay, hãy thêm chúng trước khi tạo bộ mở rộng. Và Để có hành động chỉ đeo, hãy thêm chúng trên bộ mở rộng. Nếu bạn sử dụng bộ mở rộng và bạn muốn có các hành động lặp lại trong cả hai thiết bị, bạn phải thêm chúng trong cả hai (mặc dù có thể có tùy chọn sao chép chúng?).

Ví dụ:

NotificationCompat.Builder notificationBuilder = 
     new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setContentTitle("The title") 
       .setContentText("This is the text") 
       .setContentIntent(pendingIntent); 

// Handheld-only actions. 
notificationBuilder.addAction(drawable1, "In Both", pendingIntent); 
notificationBuilder.addAction(drawable2, "Only in phone", pendingIntent); 

// Wearable-only actions. 
NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender(); 
wearableExtender.addAction(new NotificationCompat.Action.Builder(drawable2, "In Both", pendingIntent).build()); 
wearableExtender.addAction(new NotificationCompat.Action.Builder(drawable3, "Only in wearable", pendingIntent).build()); 
notificationBuilder.extend(wearableExtender); 

// Build and show notification. 
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); 
notificationManager.notify(notificationId, notificationBuilder.build()); 

Cũng

  • Nếu bạn tạo một WearableExtender nhưng không thêm bất kỳ hành động vào nó, sau đó các hành động từ các thông báo ban đầu được sử dụng.
  • "Mục đích nội dung" từ thiết bị cầm tay dường như luôn có trên đồng hồ, với văn bản "Mở trên điện thoại". Tôi đã không tìm thấy một cách để vô hiệu hóa điều này chỉ cho đồng hồ.
+0

Vì vậy, bạn đã thử thêm một Trình mở rộng mà không có bất kỳ hành động nào? Không có hành động nào được đặt nếu tôi thêm bộ mở rộng trống không? Điều gì xảy ra với nội dung Intent Action là nó luôn xuất hiện trên đồng hồ? – Janusz

+0

@Janusz Tôi chưa thử nghiệm điều này, nhưng sau này tôi sẽ thử nghiệm. – matiash

+0

có cập nhật cái này không? cần hiển thị thông báo mà không có bất kỳ hành động nào trên mặc android – abhishek

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