繁体   English   中英

在Android中显示通知

[英]Showing notification in Android wear

 private void notification() {

    NotificationManagerCompat manager = NotificationManagerCompat.from(getApplication());

    NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplication());
    builder.setAutoCancel(false);
    builder.setSmallIcon(R.mipmap.ic_launcher);

    Notification notification = builder.getNotification();
    notification.flags |= Notification.FLAG_ONGOING_EVENT; 
    notification.flags |= Notification.FLAG_NO_CLEAR; 
    notification.flags |= Notification.FLAG_SHOW_LIGHTS;
    builder.setContentTitle(getResources().getString(R.string.app_name));

    if (WearableListener.STATE_CONNECTED == WearableManager.getInstance().getConnectState()) {
        builder.setContentText(getResources().getString(R.string.connected));
        builder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);
    } else {
        builder.setContentText(getResources().getString(R.string.not_connected));
    }

    Intent intent = new Intent(this, homepage.class);
    PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
    manager.notify(R.mipmap.ic_launcher, builder.build());
}

private static final Intent ACCESSIBILITY_INTENT = new Intent("android.settings.ACCESSIBILITY_SETTINGS");
public static final Intent NOTIFICATION_LISTENER_INTENT = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");

private WearableListener wearableListener = new WearableListener() {
    @Override
    public void onConnectChange(int oldState, int newState) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                updateMainActivity();
            }
        });

        bluetoothConnectStateSave = newState;
        Log.e(TAG, "WearableListener  newState=" + newState);
        switch (newState) {
            case WearableListener.STATE_NONE://0
                bluetoothConnectState = newState;
                break;
            case WearableListener.STATE_CONNECTING://2
                pview.removeCallbacks(timeRunnable);
                bluetoothConnectState = newState;
                count = 0;
                count_max = COUNT_MAX - CONNECT_DELAY;
                count_try_disconnect = 0;
                pview.post(timeRunnable);
                break;
            case WearableListener.STATE_CONNECTED://3
                handler.removeMessages(HANDLE_MESSAGE_RECONNECT_AUTO);
                bluetoothConnectState = newState;
                pview.removeCallbacks(timeRunnable);
                notification();
                break;
            case WearableListener.STATE_CONNECT_FAIL://4
            case WearableListener.STATE_CONNECT_LOST://5
            case WearableListener.STATE_DISCONNECTING://6
                notification();
                break;
        }
        Log.e(TAG, "WearableListener bluetoothConnectState=" + bluetoothConnectState + "   bluetoothConnectStateSave=" + bluetoothConnectStateSave);
        Log.e(TAG, "WearableListener count=" + count + "   count_max=" + count_max);
    }

    @Override
    public void onDeviceChange(BluetoothDevice bluetoothDevice) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                updateMainActivity();
            }
        });
    }

    @Override
    public void onDeviceScan(BluetoothDevice bluetoothDevice) {

    }

    @Override
    public void onNameChange(String s) {
    }
};
private void updateMainActivity() {
    device = WearableManager.getInstance().getRemoteDevice();
}

以上是项目中的代码,即蓝牙低能量连接和通知部分。 我可以连接android穿戴(手表显示“监听”,这意味着他们已连接)和Android手机。 但是,通知只显示在手机中,我无法在android中获取通知。 我的项目有什么问题? 请给我一些帮助。 非常感谢你。

您是否尝试过检查此支持页面 您可以尝试给出的故障排除步骤,然后在每个步骤后检查您的手表以查看通知是否开始工作。 如果仍然无效,请尝试将手表重置为出厂设置 重启手表似乎在短期内适用于大多数人,但问题可能会再次发生 ,有时很快就会发生 您还可以查看此Android Wear通知问题论坛 ,看看给定的解决方法是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM