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中获取通知。我的项目有什么问题?请给我一些帮助。非常感谢你。
答案 0 :(得分:0)
您是否尝试过检查此support page?您可以尝试给出的故障排除步骤,然后在每个步骤后检查您的手表以查看通知是否开始工作。如果仍然无效,请尝试resetting your watch to factory settings。重启手表似乎在短期内适用于大多数人,但problem can re-occur,有时很快。您还可以查看此Android Wear notifications issues forum,看看给定的解决方法是否有帮助。