You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codename One本地通知在Android设备上无法显示

Android 13上Codename One本地通知不显示的解决方法

Android 13(API 33+)新增了POST_NOTIFICATIONS权限强制要求,应用必须主动获取该权限才能发送本地通知,这是导致你的通知在Android 13设备上无法显示的核心原因。以下是具体解决步骤:

  • 添加权限声明
    在项目的android/AndroidManifest.xml文件中添加权限声明:

    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    
  • 主动申请权限并调度通知
    在调用通知调度代码前,先检查并申请权限,示例代码如下:

    // 检查Android版本及权限状态
    if (Display.getInstance().getPlatformName().equals("Android") && 
        Integer.parseInt(Display.getInstance().getPlatformVersion()) >= 33) {
        String notificationPerm = android.Manifest.permission.POST_NOTIFICATIONS;
        if (!Display.getInstance().checkPermission(notificationPerm)) {
            Display.getInstance().requestPermissions(new String[]{notificationPerm}, 0);
            return; // 等待用户授权后再执行通知调度
        }
    }
    
    // 原通知调度代码
    LocalNotification n = new LocalNotification();
    n.setId("demo-notification");
    n.setAlertBody("It's time to take a break and look at me");
    n.setAlertTitle("Break Time!");
    // n.setAlertSound("/notification_sound_beep-01a.mp3");
        // alert sound file name must begin with notification_sound
    
    Display.getInstance().scheduleLocalNotification(
            n,
            System.currentTimeMillis() + 10 * 1000, // fire date/time
            LocalNotification.REPEAT_MINUTE  // Whether to repeat and what frequency
    );
    
  • 处理权限申请结果
    重写permissionResult方法,在用户授权后重新触发通知调度:

    @Override
    public void permissionResult(String[] permissions, int[] grantResults) {
        for (int i = 0; i < permissions.length; i++) {
            if (permissions[i].equals(android.Manifest.permission.POST_NOTIFICATIONS) && 
                grantResults[i] == Display.PERMISSION_GRANTED) {
                // 封装原通知代码为scheduleNotification方法,此处调用
                scheduleNotification();
            }
        }
    }
    

注意:若应用目标SDK版本为33及以上,该权限申请是强制要求;即使目标SDK低于33,添加权限申请也能避免后续版本兼容问题。

内容的提问来源于stack exchange,提问作者Renz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:15:34