要解决这个问题,您可以使用Firebase Cloud Messaging(FCM)来发送通知,以便所有设备都能收到通知。以下是一个示例代码,演示了如何使用FCM发送通知:
dependencies {
implementation 'com.google.firebase:firebase-messaging:20.0.0'
}
MyFirebaseMessagingService
的类,扩展自 FirebaseMessagingService
。重写 onMessageReceived
方法来处理接收到的通知。import android.util.Log;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMessagingService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
// 在这里处理接收到的通知
}
}
}
AndroidManifest.xml
文件中注册 MyFirebaseMessagingService
。
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.RemoteMessage;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 在这里发送通知
sendNotification("Hello, World!");
}
private void sendNotification(String message) {
FirebaseMessaging.getInstance().send(new RemoteMessage.Builder("YOUR_SENDER_ID" + "@gcm.googleapis.com")
.setMessageId(Integer.toString(getRandomId()))
.addData("message", message)
.build());
}
private int getRandomId() {
return new Random().nextInt(10000);
}
}
以上代码示例了如何使用Firebase Cloud Messaging发送通知。确保在 YOUR_SENDER_ID
处替换为您的 Firebase 项目的 Sender ID。
通过使用FCM,您可以确保所有运行该应用程序的设备都能收到通知。