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(默认值) } } ~~~