mi_band小米穿戴第三方APP能力开放接口文档_v1.4
Aristore整理自小米穿戴第三方APP能力开放接口文档
手环小程序开放接口文档
1.4版本更新日志
兼容Android R
1.3版本更新日志
兼容未来小米穿戴和小米健康合并项目,api无变化,直接替换sdk即可
1.2版本更新日志:
兼容jdk1.7版本,api没有变化
1.1版本更新日志:
修改状态订阅和状态查询相关接口返回值,详情请查看文档3.2和3.3部分
增加消息通知api,详情请看文档第 5 部分
1.查询已连接的可穿戴设备(不需要权限)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| NodeApi api = Wearable.getNodeApi(context);
api.getConnectedNodes() .addOnSuccessListener(new OnSuccessListener<List<Node>>() { @Override public void onSuccess(List<Node> nodes) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
|
2.权限查询与申请
2.1查询授权状态
第一次调用授权会默认授予Permission.DEVICE_MANAGER和Permission.Notify权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| AuthApi authApi = Wearable.getAuthApi(context);
authApi.checkPermission("nodeId", Permission.DEVICE_MANAGER) .addOnSuccessListener(new OnSuccessListener<Boolean>() { @Override public void onSuccess(Boolean result) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
Permission[] permissions = new Permission[]{ Permission.DEVICE_MANAGER, Permission.NOTIFY };
authApi.checkPermissions("nodeId", permissions) .addOnSuccessListener(new OnSuccessListener<Boolean[]>() { @Override public void onSuccess(Boolean[] results) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
|
2.2申请权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| AuthApi authApi = Wearable.getAuthApi(context);
authApi.requestPermission("nodeId", Permission.DEVICE_MANAGER, Permission.NOTIFY) .addOnSuccessListener(new OnSuccessListener<Permission[]>() { @Override public void onSuccess(Permission[] permissions) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
|
3.设备管理与状态订阅
3.1支持查询与订阅的设备状态
设备管理与状态订阅 |
查询结果 |
订阅事件触发条件 |
订阅结果 |
连接状态 |
1.连接 2.未连接 |
1.手机与设备连接成功 2.手机与设备断开连接 |
1.连接成功 2.连接断开 3.连接失败 4.设备被删除 |
电量状态 |
电量值(0~100,比如 98 ) |
N/A |
N/A |
充电状态 |
1.正在充电 2.非充电状态 |
1.给设备充电 2.充满电 3.停止充电
|
1.开始充电 2.充电完成 3.停止充电 |
佩戴状态 |
1.佩戴中 2.未佩戴 |
1.手表戴在手腕上 2.摘下手表 |
1.佩戴 2.未佩戴 |
睡眠状态 |
1.睡眠中 2.清醒 |
1.佩戴手表入睡 2.从入睡状态清醒过来 |
1.入睡 2.出睡 |
3.2状态查询(需要申请Permission.DEVICE_MANAGER权限)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| NodeApi api = Wearable.getNodeApi(context);
api.query("nodeId", DataItem.ITEM_CONNECTION) .addOnSuccessListener(new OnSuccessListener<DataQueryResult>() { @Override public void onSuccess(DataQueryResult result) { boolean connectionStatus = result.isConnected(); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
api.isWearAppInstalled("nodeId") .addOnSuccessListener(new OnSuccessListener<Boolean>() { @Override public void onSuccess(Boolean result) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
api.launchWearApp("nodeId", "uri") .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
|
3.3状态订阅(需要申请Permission.DEVICE_MANAGER权限)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| NodeApi api = Wearable.getNodeApi(context);
OnDataChangedListener onDataChangedListener = new OnDataChangedListener() { @Override public void onDataChanged(@NonNull String nodeId, @NonNull DataItem dataItem, @NonNull DataSubscribeResult data) { if (dataItem.getType() == DataItem.ITEM_CONNECTION.getType()) { int connectionStatus = data.getConnectedStatus(); if (connectionStatus == DataSubscribeResult.RESULT_CONNECTION_CONNECTED) { } } } };
api.subscribe("nodeId", DataItem.ITEM_CONNECTION, onDataChangedListener) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
api.unsubscribe("nodeId", DataItem.ITEM_CONNECTION) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
|
4.应用间消息通信(需要申请Permission.DEVICE_MANAGER权限)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| byte[] messageBytes = new byte[1024];
MessageApi messageApi = Wearable.getMessageApi(context);
messageApi.sendMessage("nodeId", messageBytes) .addOnSuccessListener(new OnSuccessListener<Integer>() { @Override public void onSuccess(Integer result) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
OnMessageReceivedListener onMessageReceivedListener = new OnMessageReceivedListener() { @Override public void onMessageReceived(@NotNull String nodeId, @NotNull byte[] message) { } };
messageApi.addListener("nodeId", onMessageReceivedListener) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
messageApi.removeListener("nodeId", onMessageReceivedListener) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
|
5.消息通知(需要Permission.NOTIFY权限)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| NotifyApi notifyApi = Wearable.getNotifyApi(context);
notifyApi.sendNotify("nodeId", "title", "message") .addOnSuccessListener(new OnSuccessListener<Status>() { @Override public void onSuccess(Status status) { if (status.isSuccess()) { } } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
|
6.管理服务连接状态(不需要权限)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ServiceApi serviceApi = Wearable.getServiceApi(context);
OnServiceConnectionListener onServiceConnectionListener = new OnServiceConnectionListener() { @Override public void onServiceConnected() {
} @Override public void onServiceDisconnected() {
} };
serviceApi.registerServiceConnectionListener(onServiceConnectionListener);
serviceApi.unregisterServiceConnectionListener(onServiceConnectionListener);
|