Showing notification in Android wear

141 views Asked by At
 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();
}

The above is the code in the project which is the bluetooth low energy connection and notification part. I can connect between android wear (the watch is showing "listening" which means that they are connected) and android phone. However, the notification only shows in the phone and I cannot get the notification in the android wear. What is the issue in my project? Please give me some helps. Thank You very much.

1

There are 1 answers

0
abielita On

Have you tried checking this support page? You may try the troubleshooting steps given then check your watch after each step to see if notifications start working. ​If it still doesn't work, try resetting your watch to factory settings. Restarting the watch seems to work for most people in the short term, but the problem can re-occur, sometimes quite quickly. You can also check this Android Wear notifications issues forum and see if the given workaround will help.