first commit
This commit is contained in:
commit
669f49b1d6
342 files changed
+320811
No files matched your search
@@ -0,0 +1,84 @@
|
||||
|
||||
| 项目 | 值 | 类型 |
|
||||
| --- | --- | --- |
|
||||
| 请求名称 | `syncAppList` | String |
|
||||
| 参数名称 | `appList` | String |
|
||||
| 参数内容 | 应用列表 JSON 字符串 | String |
|
||||
|
||||
```java
|
||||
BundleMutablePayload params = new BundleMutablePayload();
|
||||
params.putString("appList", appListJson);
|
||||
|
||||
Request request = new Request("syncAppList", params);
|
||||
sendCommandTxz(request);
|
||||
```
|
||||
|
||||
注意:`appList` 参数本身是一个字符串,字符串内容才是应用列表 JSON,不是直接向参数中放入 JSON 对象。
|
||||
|
||||
##应用列表 JSON 格式
|
||||
```json
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"app.name": "空调",
|
||||
"app.package": "com.yaxon.hvac"
|
||||
},
|
||||
{
|
||||
"app.name": "音乐",
|
||||
"app.package": "com.yaxon.music"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 3.3 字段定义
|
||||
|
||||
| 字段 | 类型 | 是否必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `list` | JSON Array | 是 | 应用信息数组 |
|
||||
| `app.name` | String | 是 | 提供给语音识别使用的应用名称 |
|
||||
| `app.package` | String | 是 | 应用包名或约定的应用功能标识 |
|
||||
|
||||
每个应用元素当前只包含 `app.name` 和 `app.package` 两个字段。
|
||||
|
||||
```java
|
||||
private void scanNativeApp() {
|
||||
mThreadPoolTool.execute(() -> {
|
||||
JsonHelper jsonHelper = new JsonHelper();
|
||||
PackageManager packageManager =
|
||||
YxApplication.getApplication().getPackageManager();
|
||||
List<PackageInfo> packageInfoList =
|
||||
packageManager.getInstalledPackages(0);
|
||||
JSONArray jsonArray = jsonHelper.createJsonArray();
|
||||
|
||||
for (PackageInfo packageInfo : packageInfoList) {
|
||||
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
|
||||
String appName = applicationInfo.loadLabel(packageManager).toString();
|
||||
String packageName = packageInfo.packageName;
|
||||
if (mAppInfoMap.containsKey(packageName)) {
|
||||
appName = mAppInfoMap.get(packageName);
|
||||
}
|
||||
JSONObject item = jsonHelper.createJsonObject(
|
||||
new Pair<>("app.name", appName),
|
||||
new Pair<>("app.package", packageName));
|
||||
if (item != null) {
|
||||
jsonArray.put(item);
|
||||
}
|
||||
}
|
||||
|
||||
for (Map.Entry<String, String> app : mCustomAppMap.entrySet()) {
|
||||
JSONObject item = jsonHelper.createJsonObject(
|
||||
new Pair<>("app.name", app.getValue()),
|
||||
new Pair<>("app.package", app.getKey()));
|
||||
if (item != null) {
|
||||
jsonArray.put(item);
|
||||
}
|
||||
}
|
||||
|
||||
jsonHelper.putJsonArray("list", jsonArray);
|
||||
VoiceManager.VOICE_EVENT_HELPER
|
||||
.sendAppListScanComplete(jsonHelper.toJson());
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user