Skip to content

Commit 01c5e15

Browse files
authored
Merge pull request #346 from Authing/doc-android-sdk
add device management api
2 parents 770050b + ee73217 commit 01c5e15

File tree

9 files changed

+689
-0
lines changed

9 files changed

+689
-0
lines changed

docs/.vuepress/sidebar.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1755,6 +1755,8 @@ const zhCnNavBar = {
17551755
"/reference/sdk-for-android/apis/protocol/",
17561756
"/reference/sdk-for-android/apis/mfa/",
17571757
"/reference/sdk-for-android/apis/scan/",
1758+
"/reference/sdk-for-android/apis/device/",
1759+
"/reference/sdk-for-android/apis/event/",
17581760
],
17591761
},
17601762
{
@@ -1800,6 +1802,7 @@ const zhCnNavBar = {
18001802
"/reference/sdk-for-android/scenario/overseas",
18011803
"/reference/sdk-for-android/scenario/biometric",
18021804
"/reference/sdk-for-android/scenario/otp",
1805+
"/reference/sdk-for-android/scenario/device",
18031806
],
18041807
},
18051808
{
@@ -7712,6 +7715,14 @@ const translatedZhCnNavBar = {
77127715
title: "Scan to login",
77137716
path: "/reference/sdk-for-android/apis/scan/",
77147717
},
7718+
{
7719+
title: "Device management",
7720+
path: "/reference/sdk-for-android/apis/device/",
7721+
},
7722+
{
7723+
title: "Event subscription",
7724+
path: "/reference/sdk-for-android/apis/event/",
7725+
},
77157726
],
77167727
},
77177728
{
@@ -7828,6 +7839,10 @@ const translatedZhCnNavBar = {
78287839
title: "Authing OTP",
78297840
path: "/reference/sdk-for-android/scenario/otp",
78307841
},
7842+
{
7843+
title: "Device management",
7844+
path: "/reference/sdk-for-android/scenario/device",
7845+
},
78317846
],
78327847
},
78337848
{
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Device management API
2+
3+
<LastUpdated/>
4+
5+
## Reporting device
6+
7+
```java
8+
public static void createDevice(DeviceInfo deviceInfo, @NotNull AuthCallback<JSONObject> callback)
9+
```
10+
11+
**Parameter**
12+
13+
* `deviceInfo` device infomation
14+
15+
**Example**
16+
17+
```java
18+
DeviceInfo deviceInfo = new DeviceInfo();
19+
deviceInfo.setDeviceUniqueId("");
20+
deviceInfo.setName("");
21+
deviceInfo.setVersion("Android 13");
22+
deviceInfo.setHks("");
23+
deviceInfo.setFde("");
24+
deviceInfo.setHor("");
25+
deviceInfo.setType("Mobile");
26+
deviceInfo.setProducer("");
27+
deviceInfo.setMod("");
28+
deviceInfo.setOs("Android");
29+
deviceInfo.setSn("");
30+
deviceInfo.setImei("");
31+
deviceInfo.setMeid("");
32+
deviceInfo.setDescription("");
33+
AuthClient.createDevice(deviceInfo, (AuthCallback<JSONObject>) (code, message, data) -> {
34+
if (code == 200 && data != null) {
35+
// success
36+
}
37+
});
38+
```
39+
40+
<br>
41+
42+
## Get device information
43+
44+
```java
45+
public void deviceList(int page, int limit, DeviceStatus deviceStatus, String os, String keyword, @NotNull AuthCallback<ArrayList<DeviceData>> callback)
46+
```
47+
48+
**Parameter**
49+
50+
* `page` page
51+
* `limit` limit
52+
* `deviceStatus` device status
53+
* `os` os
54+
* `keyword`
55+
56+
**Example**
57+
58+
```java
59+
AuthClient.deviceList(1, 50, null, "Android", "", (AuthCallback<JSONObject>) (code, message, data) -> {
60+
if (code == 200 && data != null) {
61+
// success
62+
}
63+
});
64+
```
65+
66+
<br>
67+
68+
## Off-line device
69+
70+
```java
71+
public static void logoutByDeviceId(String deviceId, @NotNull AuthCallback<JSONObject> callback)
72+
```
73+
74+
**Parameter**
75+
76+
* `deviceId` device ID
77+
78+
**Example**
79+
80+
```java
81+
AuthClient.logoutByDeviceId("", (AuthCallback<JSONObject>) (code, message, data) -> {
82+
if (code == 200 && data != null) {
83+
// success
84+
}
85+
});
86+
```
87+
88+
<br>
89+
90+
## Remove device
91+
92+
```java
93+
public static void removeDevice(String deviceId, @NotNull AuthCallback<JSONObject> callback)
94+
```
95+
96+
**Parameter**
97+
98+
* `deviceId` device ID
99+
100+
**Example**
101+
102+
```java
103+
AuthClient.removeDevice("", (AuthCallback<JSONObject>) (code, message, data) -> {
104+
if (code == 200 && data != null) {
105+
// success
106+
}
107+
});
108+
```
109+
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Event subscription API
2+
3+
<LastUpdated/>
4+
5+
## Subscribe events
6+
7+
```java
8+
public static void subEvent(String eventCode, @NotNull Receiver receiver)
9+
```
10+
11+
**Parameter**
12+
13+
* `eventCode` event code
14+
15+
**Example**
16+
17+
```java
18+
AuthClient.subEvent("authing.user.updated", new Receiver() {
19+
@Override
20+
public void onOpen() {
21+
// Connection successful
22+
}
23+
24+
@Override
25+
public void onReceiverMessage(String s) {
26+
// Receive a message
27+
}
28+
29+
@Override
30+
public void onError(String s) {
31+
// Connection failure
32+
}
33+
});
34+
```
35+
36+
<br>
37+
38+
## Publish event
39+
40+
```java
41+
public static void pubEvent(String eventCode, String eventData, @NotNull AuthCallback<JSONObject> callback)
42+
```
43+
44+
**Parameter**
45+
46+
* `eventCode` event code
47+
* `eventData` data
48+
49+
**Example**
50+
51+
```java
52+
AuthClient.pubEvent("authing.user.updated", data, (AuthCallback<JSONObject>) (code, message, data) -> {
53+
if (code == 200 && data != null) {
54+
// success
55+
}
56+
});
57+
```
58+
59+
<br>
60+
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
2+
3+
# Device management
4+
5+
<LastUpdated/>
6+
7+
First make sure it's done [quick start](./quick.md)
8+
9+
:::hint-info
10+
This feature was added in android guard sdk 1.5.7 version.
11+
:::
12+
13+
<br>
14+
15+
Device management is performed by the `DeviceManager` class, which encapsulates the device management API for ease of use.
16+
17+
## Reporting device
18+
19+
:::hint-info
20+
Need to report to device before account login.
21+
:::
22+
23+
Call `createDevice` method to quickly report the device, example:
24+
25+
```java
26+
DeviceManager.getInstance().createDevice(this, new AuthCallback<JSONObject>() {
27+
@Override
28+
public void call(int code, String message, JSONObject data) {
29+
if (code == 10002){
30+
// Please select and use Authing.init(context, "AUTHING_APP_ID");
31+
} else if (code == 10029){
32+
// Please select to apply for READ_PHONE_STATE permission,sdk < 29 need
33+
} else if (code == 200){
34+
// success
35+
}
36+
}
37+
});
38+
```
39+
40+
You can also report it automatically in the following ways, for example:
41+
42+
```java
43+
DeviceInfo deviceInfo = new DeviceInfo();
44+
deviceInfo.setDeviceUniqueId("");
45+
deviceInfo.setName("");
46+
deviceInfo.setVersion("Android 13");
47+
deviceInfo.setHks("");
48+
deviceInfo.setFde("");
49+
deviceInfo.setHor("");
50+
deviceInfo.setType("Mobile");
51+
deviceInfo.setProducer("");
52+
deviceInfo.setMod("");
53+
deviceInfo.setOs("Android");
54+
deviceInfo.setSn("");
55+
deviceInfo.setImei("");
56+
deviceInfo.setMeid("");
57+
deviceInfo.setDescription("");
58+
DeviceManager.getInstance().createDevice(deviceInfo, (AuthCallback<JSONObject>) (code, message, data) -> {
59+
if (code == 200 && data != null) {
60+
// success
61+
}
62+
});
63+
```
64+
65+
## Get device information
66+
67+
Call the `deviceList` method to get device information, example:
68+
69+
```java
70+
DeviceManager.getInstance().deviceList(1, 50, null, "Android", "",
71+
(AuthCallback<ArrayList<DeviceData>>) (code, message, deviceList) -> {
72+
if (code == 200) {
73+
// success
74+
}
75+
});
76+
```
77+
78+
## Off-line device
79+
80+
Call the `logoutByDeviceId` method to go offline, example:
81+
82+
```java
83+
DeviceManager.getInstance().logoutByDeviceId(deviceId, (AuthCallback<JSONObject>) (code, message, data) -> {
84+
if (code == 200) {
85+
// success
86+
}
87+
});
88+
```
89+
90+
## Remove device
91+
92+
Call the `removeDevice` method remove device information,example:
93+
94+
```java
95+
DeviceManager.getInstance().removeDevice(deviceId, (AuthCallback<JSONObject>) (code, message, data) -> {
96+
if (code == 200) {
97+
// success
98+
}
99+
});
100+
```
101+
102+
## Subscribe device event
103+
104+
Call the `subDeviceEvent` method to subscribe to a device event, for example:
105+
106+
```java
107+
DeviceManager.getInstance().subDeviceEvent(new IDeviceReceiver() {
108+
@Override
109+
public void onOpen() {
110+
// Connection successful
111+
}
112+
113+
@Override
114+
public void onReceiverEvent(DeviceEvent deviceEvent) {
115+
// Receive event message
116+
int logoutType = deviceEvent.getLogoutType();
117+
if (logoutType == DeviceManager.LOGOUT_ANOTHER) {
118+
//User side: Personal Center - Log out
119+
} else if (logoutType == DeviceManager.PROFILE_UNBIND) {
120+
//User side: Personal Center - Unbind the device
121+
} else if (logoutType == DeviceManager.SUSPEND_DEVICE_BY_USER) {
122+
//Administrator: User list - Personal Details - Suspend the device
123+
} else if (logoutType == DeviceManager.SUSPEND_DEVICE) {
124+
//Administrator: Manage devices - Suspend devices
125+
} else if (logoutType == DeviceManager.DISABLE_DEVICE_BY_USER ) {
126+
//Administrator: User list - Personal Details - Disable devices
127+
} else if (logoutType == DeviceManager.DISABLE_DEVICE) {
128+
//Administrator: Manage devices - Disable devices
129+
} else if (logoutType == DeviceManager.DELETE_DEVICE_BY_USER) {
130+
//Administrator: User List - Personal Details - Remove Device (Unbind)
131+
} else if (logoutType == DeviceManager.DELETE_DEVICE) {
132+
//Administrator: Manage devices - Delete devices
133+
}
134+
}
135+
136+
@Override
137+
public void onError(String s) {
138+
// Connection failure
139+
}
140+
});
141+
```
142+
143+
## Shutdown device event
144+
145+
Call the `closeDeviceEvent` method to close the device subscription event for a single account, example:
146+
147+
```java
148+
DeviceManager.getInstance().closeDeviceEvent(token);
149+
```
150+
151+
## Disable all device events
152+
153+
Call the `closeAllDeviceEvent` method to close the device subscription event for all accounts as shown in the following example:
154+
155+
```java
156+
DeviceManager.getInstance().closeAllDeviceEvent();
157+
```
158+

docs/en/reference/sdk-for-android/version.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
<LastUpdated/>
44

5+
- ## 1.5.7
6+
7+
8+
> Update time:2023.6.9
9+
10+
1. Add device management API.
11+
2. Add dark mode.
12+
13+
<br>
14+
515
- ## 1.5.6
616

717

0 commit comments

Comments
 (0)