6.常见问题
### 音频、视频场景无回复或回复暂不支持
* * * * *
**1.“唱首歌”、“播放电影”等播放指令没有回复或回复“抱歉,我暂时未接入第三方资源库,还不能为您执行该功能。**
* 在音频、视频场景中,对外提供的场景输出内容是自行对接第三方资源库,所以需要开发者接入资源库,并根据robot应答指令执行对应动作。
**2.“最近有什么好看的电影”、“最近有什么新歌”无回复**
* APP暂时只针对灵聚内部提供音频资源作出了应答,没有对使用第三方资源库的动作指令进行处理,开发者可以根据自身需求实现相关查询资源指令。
### 关于同步
* * * * *
**1.如何获取服务器的所有数据记录**
* 以提醒为例,当用户清空本地数据后或第一次安装打开应用时,调用同步方法即可。
~~~
//获取服务所有提醒记录
AssistEntityDao.RemindEntityDao remindDao = AssistEntityDao.create().getDao(AssistEntityDao.RemindEntityDao.class);
AndroidChatRobotBuilder.get().robot().actionTargetAccessor().sync(remindDao);
~~~
**2.重复同步某一条数据**
* 上传数据时需要将本地记录ID上传,方便合并服务数据时更新该ID的记录;若无本地ID,则每次合并数据都是本地新建一条记录,原待同步记录一直未更新,则会重复提交同步。
### 关于手机头部状态栏
* * * * *
由于在values-v21/styles.xml设置了`<item name="android:windowTranslucentStatus">true</item>`, 会使页面内容延伸到状态栏。所以当开发者新建一个Activity页面时,若页面浸入了状态栏,需要在Activity的布局文件中,在最顶部设置一个View。
~~~
<View
android:id="@+id/status_bar"
android:layout_width="match_parent"
android:layout_height="25dp"
android:background="@color/bar_color"/>
~~~
然后在Activity的onCreate( )中,setContentView( )之后,动态设置该View的高度模拟状态栏。
~~~
//设置模拟状态栏的高度
ViewGroup.LayoutParams layoutParams = mStatusBar.getLayoutParams();
layoutParams.height = ScreenUtil.getStatusBarHeight(this);
mStatusBar.setLayoutParams(layoutParams);
~~~
### 关于GreenDao
* * * * *
**1.设置主键id自增长**
* 必须使用Long类型(int、long都不行),@Id(autoincrement = true)才会生效。
**2.数据库升级**
* 当新版本的APP涉及到数据库表或表字段的增减,在覆盖旧版本安装后打开应用时,需要先进行数据库的升级。数据的备份和表的更新操作已封装在SQLiteOpenHelper和MigrationHelper中。开发者只需要修改app/build.gradle里android.greendao的schemaVersion值即可(修改后的值 > 原来的值)。
~~~
android {
...
greendao {
schemaVersion 1(默认值)
}
}
~~~