Tôi đang viết một ứng dụng tích hợp với Smooch và Carnival. Cả hai thư viện này nhận được tin nhắn push GCM bằng cách sử dụng cách tiếp cận chuẩn để xác định một Dịch vụ Intent GCM để nhận tin nhắn.Sử dụng 2 hoặc nhiều Dịch vụ Intent GCM trong một Ứng dụng
Khi tôi chỉ sử dụng Smooch, mọi thứ đều hoạt động tuyệt vời. Khi tôi chỉ sử dụng Carnival, mọi thứ đều tuyệt vời. Vấn đề xuất hiện khi tôi cố gắng sử dụng cả hai. Những gì tôi đã tìm thấy là người nhận GCM sẽ chỉ đơn giản là bắt đầu dịch vụ đầu tiên được liệt kê trong tệp kê khai xác định mục đích com.google.android.c2dm.intent.RECEIVE
.
Thực tế, tôi thấy rằng thứ tự các thư viện được liệt kê trong số build.gradle
của tôi ảnh hưởng đến thứ tự các tệp kê khai của chúng được hợp nhất vào tệp kê khai ứng dụng. Vì vậy, nếu tôi đặt smooch đầu tiên, nó hoạt động (nhưng Carnival không nhận được bất cứ điều gì). Và nếu tôi đặt Carnival đầu tiên, nó hoạt động (nhưng Smooch không bao giờ nhận được bất cứ điều gì).
Làm cách nào để xử lý nhiều dịch vụ mục đích GCM khi tôi không kiểm soát một trong hai dịch vụ này? Nói chung, các ứng dụng nên xác định và quản lý nhiều dịch vụ ý định GCM như thế nào?
Cảm ơn, thật tuyệt khi thấy Smooch cung cấp khả năng thực hiện điều này. Thật không may tôi chắc chắn lễ hội không. Tuy nhiên, tôi có thể sử dụng cùng một cách tiếp cận và gọi 'startWakefulService' hai lần với mỗi dịch vụ và đảm bảo rằng dịch vụ chuyển tiếp ý định của tôi được liệt kê đầu tiên trong tệp kê khai. Sẽ thử điều này và cập nhật ở đây. –
Tính năng này hoạt động. Tôi thực sự không cần phải vô hiệu hóa đăng ký GCM và làm của riêng tôi, bởi vì tôi đang sử dụng cùng một ID người gửi và khóa API cho cả hai dịch vụ. Ngoài ra tôi có thể sử dụng lá cờ smoochNotification để gửi tin nhắn đến đúng nơi và không chỉ gửi một cách mù quáng cho cả hai. Vì vậy, tất cả đều tốt ... Cảm ơn! –