HarmonyOS 鸿蒙Next推送功能调用华为推送接口返回“没有权限打开Activity”
HarmonyOS 鸿蒙Next推送功能调用华为推送接口返回“没有权限打开Activity”
调用推送接口,返回成功,结果查询的时候返回“没有权限打开Activity”,鸿蒙OS有Activity?
curl ‘https://push-api.cloud.huawei.com/v3/*********/messages:send’
请求参数如下:
{
“payload”: {
“notification”: {
“category”: “IM”,
“title”: “普通通知标题”,
“body”: “普通通知内容”,
“clickAction”: {
“actionType”: 0
}
}
},
“target”: {
“token”: [
“MAM6LgLI8gkD8wwAstO3hwAAAGQAAAAAAAKK2UkNAPI5pWl5U0XOGuE9R8NF95Gv5PAVqQhOA9q0qlclAJIXLRChXJp_rl7lABdrZZD8CDhv7IaJ”
]
},
“pushOptions”: {
“testMessage”: true
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
关于HarmonyOS 鸿蒙Next推送功能调用华为推送接口返回“没有权限打开Activity”的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。
HarmonyOS的分布式技术让我实现了跨设备的无缝协作,工作效率翻倍。
您好,请问是怎么解决的呢?module.json5的什么字段导致的这个问题呢?
希望HarmonyOS能继续推出更多实用的功能,满足用户的不同需求。
照着demo配置就好了,我的问题是规则没有匹配到, 根据你们的需求配置,正常情况是要配置uri的
谢了,uri和actions配置的问题:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-send-alert-V5h±/$%-+看文档是 使用actions时 配置文件中uris需要为空 使用uris时actions需要为空 奇怪的规则
收到你的推送消息后,设备并没有自动打开应用,而是显示了一个系统级别的通知。这通常是由系统处理推送消息并显示通知的过程。在Android系统中,如果应用不在前台运行或者被用户手动清除通知,系统会显示一个系统级别的通知。
要解决这个问题,你可以检查以下几点:
1.确保应用已经在后台运行:如果应用没有在后台运行,系统将不会自动显示通知。用户需要手动打开应用。
2.检查应用的通知设置:确保应用的通知设置允许显示通知。在应用的设置或首选项中,查找通知相关的选项,确保它们没有被禁用。
3.测试不同的消息类型:尝试发送不同类型的推送消息(例如,数据消息或通知消息),以确定问题是否与特定类型的消息有关。
4.检查通知的点击动作:确保你的通知点击动作已经正确设置。如果点击通知时需要打开特定的Activity,请确保Intent中指定了正确的组件信息。
5.使用系统的通知记录工具:检查系统的通知记录工具,看看是否有关于你的应用的通知记录。这有助于了解通知是如何被系统处理的。
如果你希望在应用在后台时也能显示自定义的通知,你可能需要实现一个前台服务(Foreground Service)。前台服务可以在Android 8.0(API级别26)及以上版本中运行,并且会显示一个持续的通知,直到服务被销毁或者用户关闭它。
要创建一个前台服务,你需要执行以下步骤:
1.创建一个继承自Service的类。
2.在服务类中,调用startForeground()方法来启动服务并显示通知。
3.在服务结束时,调用stopForeground()方法来移除通知。
下面是一个简单的示例,展示了如何创建和启动一个前台服务:
public class ForegroundService extends Service {
private static final String CHANNEL_ID = “ForegroundServiceChannel”;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// 创建一个NotificationChannel(Android 8.0及以上版本需要)
createNotificationChannel();
// 创建一个Notification,这将显示在系统的通知栏中
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle(“Foreground Service”)
.setContentText(“Service is running in the background”)
.setSmallIcon(R.drawable.ic_notification)
.build();
// 启动前台服务
startForeground(1, notification);
// 如果服务需要一直运行,可以返回START_STICKY
return START_NOT_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
// 服务被销毁时,移除通知
stopForeground(true);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
private void createNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel serviceChannel = new NotificationChannel(
CHANNEL_ID,
“Foreground Service Channel”,
NotificationManager.IMPORTANCE_DEFAULT
);
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(serviceChannel);
}
}
}
鸿蒙next系统,不是android