我正在为android wes-OS开发一个实时聊天应用程序。我正在使用Tic Watch Pro 4G进行开发测试。我的应用程序已经在Wear-OS Play商店中名为“IoSite”
对于推送通知,我使用FCM。我有两块手表
案例1:如果我使用Android手机和play store的下载IoSite应用程序配置手表,那么FCM推送通知在这两款手表中都有效。
案例2:如果我使用iPhone配置手表。然后当我将IoSite应用下载到watch 1并尝试使用它时。然后FCM推送通知工作正常。然后我在watch 2中下载了IoSite应用程序并尝试使用它。FCM推送通知在watch two a well中起作用。但在watch 2中安装应用程序后,FCM推送通知在watch 1中停止工作。以下是应用程序尝试获取firebase实例id时的Android studio日志:
2020-02-14 16:39:39.455 9476-9662/com.iosite。iositewatchapp W/FirebaseInstanceId:令牌检索失败,无异常html" target="_blank">消息。将重试令牌检索2020-02-14 16:39:39.459 9476-9476/com.iosite。iositewatchapp W/MyFirebaseMessagingService:getInstanceId失败的java.io。IOException:SERVICE\u NOT\u在com.google.firebase.iid.zza(com.google.firebase:firebase iid@@20.0.2:71)在com.google.firebase.iid.zzl.zza(com.google.firebase:firebase iid@@20.0.2:84)在com.google.firebase.iid.zzp。然后(com.google.firebase:firebase iid@@20.0.2:4)在com.google.android.gms.tasks.zzd。run(未知源:5)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)at java.lang.Thread.run(Thread.java:764)
在这个手表1中,如果我尝试删除InstanceID(以便FCM SDK生成一个新ID),那么我会得到以下错误:
2020-02-14 16:39:39.461 9476-9476/com.iosite.iositewatchappW/System.err:com.google.firebase.iid.Firebase InstanceId.deleteInstanceId(com.google.firebase:Firebase-iid@@20.0.2:57) 2020-02-14 16:39:39.462 9476-9476/com.iosite.iositewatchappW/System.err:com.iosite.iositewatchapp.服务。
请提出解决方案。
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private final String TAG = "MyFirebaseMessaging";
private Context mContext;
public static final String CHANNEL_ID = "NotifChannel";
public static final String CHANNEL_ID_ANN = "AnnouncementChannel";
public static final String CHANNEL_ID_MSG = "MsgChannel";
private String fcm_token = "";
public static List<MessageClass> messages = new ArrayList<>();
Location location;
private Vibrator audioVibe;
private VibrationEffect audioVibeEffect;
public MyFirebaseMessagingService() {
}
@Override
public void onCreate() {
super.onCreate();
}
public MyFirebaseMessagingService(Context context) {
Log.i(TAG, "MyFirebaseMessagingService started");
mContext = context;
}
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "onMessageReceived called: " + remoteMessage.getData());
Map<String, String> messageReceivedData = remoteMessage.getData();
if (messageReceivedData.size() > 0) {
//TODO: handle new group added notif and subscribe for the group. Also add group to group list
// sendMessageNotification(messageReceivedData);
}
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
}
@Override
public void onNewToken(String token) {
Log.d(TAG, "New token generated: " + token);
fcm_token = token;
// sendRegistrationToServer(token, FirebaseInstanceId.getInstance().getId());
}
public boolean isGooglePlayServicesAvailable(Context context) {
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(context);
return resultCode == ConnectionResult.SUCCESS;
}
此外,将以下内容添加到应用级build.gradle:
implementation 'com.google.firebase:firebase-messaging:20.1.2'
将以下内容添加到您的清单中:
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
在上面的代码之后,您还需要将您的项目添加到您的fcm帐户。添加项目后,您将获得一个google-services.json文件。将该文件保存在C:\User\{xyz}\AndroidStudioProjects\{your_app_name}\app\
您应该能够在回调方法onMessageReceived中接收所有通知。
问题内容: 我需要处理推送通知,这是通过较低版本的ios完成的,但是在ios 11中,从未收到任何推送通知。我使用Firebase Cloud Messaging。请任何人有解决方案,然后请分享。 问题答案: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UI
我编写了一个RESTAPI。NET Core现在需要创建一个推送通知到Firebase Cloud Messaging(FCM)。对于测试,我使用Firebase控制台,但我需要通过编程来完成。我已经通过谷歌浏览了Firebase的文档和一些例子,但我更困惑了。 我认为可以通过常规创建消息,但有人可以发布一个简单的工作示例以便我可以拿起它吗?或者也许,我的理解完全错误?
我是新来的< code>Android Studio,所以我不明白。我是使用< code>FCM的< code >推送通知的新手,但我没有得到解决方案。我在运行时遇到了这种错误。 我的应用程序/Gradle 这是我的项目等级 我已经更新了android studio<code>SDK</code>我这边什么都没有了,但我不知道我哪里出错了。所以请在这方面帮助我。
我们用FCM创建了一个带有通知的聊天应用程序,我的代码是正确的,我的设备也得到了推送通知数据,但一些中国制造的设备,如vivo、oppo、一加、小米,不允许通知显示,除非我在各自厂商的受保护的应用程序列表中添加应用程序。他们有没有办法解决这个问题。 https://hackernoon.com/notifications-in-android-are-horribly-broken-b8dbec6
问题内容: 我想使用Java将“推送通知”消息发送到特定的iPhone设备。 我不知道该怎么做。 我对此进行了谷歌搜索,他们建议使用“ PayLoad”类,但不要从任何jar文件中获取此类。 请有人指导我通过Java将推送通知消息发送到iPhone吗? 问题答案: 使用JavaPNS。例如:
以下是我的通知案例:当通知到达时,应用程序可能是前台,后台,或关闭 2.后台:当用户点击通知时,应用程序应显示在前面,并显示主要活动 3.App关闭时:当用户点击通知时,App应打开,并显示主要活动。 当我用设置intent和用设置PendingIntent时。它按预期工作,但当用户点击notification时,它不会调用Main Activity的onCreate方法。 如果您考虑了上面的代码