- 博客(10)
- 问答 (1)
- 收藏
- 关注
原创 Android 使用DelayQueue实现串口三次重发数据
串口通信要求没收到返回重新发送,最多三次。三次过后提示无响应。早前试过用postdelay,然后收到数据后用removeall,这样其实所有的都被清除了,不是对应的命令。而且代码非常不美观,runnable很多。take()是阻塞的,会等到下一个到期的事件,每次发送的时候添加4个事件。具体DelayFrame代码。最后收到数据后删除对应还没到期的。后来发送的使用延时队列。
2025-01-09 16:16:41
151
原创 Android 使用开源项目Sherpa的关键词检测(语音唤醒)
sherpa是一个基于下一代 Kaldi 和 onnxruntime 的开源项目,专注于语音识别、文本转语音、说话人识别和语音活动检测(VAD)等功能。该项目支持在没有互联网连接的情况下本地运行,适用于嵌入式系统、Android、iOS、Raspberry Pi、RISC-V 和 x86_64 服务器等多种平台。现在很多语音识别都要收费了,之前用过免费的云知声也收费了,之前只使用过 它的TTS,还有免费的离线sdk,现在要做语音唤醒(关键词检测)。关键就这三个部分jar、assets、jni。
2025-01-09 15:32:18
1705
原创 Android根据阿拉伯数字获得汉字语音
对汉字特别注意0和单位如1001和100 private List<Integer> getSoundOfNumber(int number){ List<Integer> sou = new ArrayList<>(); int i = 0; boolean isZero = true; //上...
2019-07-10 13:33:13
538
原创 安卓gpio操作示例
GPIO值在RK3288中的计算方法为:bank×32+pin,如:GPIO7A3: 7×32 + 0*8 +3=227GPIO0B5: 0×32+ 1*8 +5=131. 导出/sys/class/gpio# echo 44 > export2. 设置方向/sys/class/gpio/gpio44# echo out > direction3. 查看方向...
2019-05-31 09:18:55
2823
2
原创 安卓多个EditText的统一处理
使用黄油刀后加上焦点的判断来处理多个edittext的逻辑处理 @OnTextChanged({R.id.edit_name, R.id.edit_supplier}) public void onTextChanged(CharSequence text, int start, int before, int count) { if (nameE...
2019-04-23 13:06:48
749
原创 Android数据绑定通过点击事件获得bingding
特别是在recyclerview的item中有时候我们需要获得bingding来处理一些视图,可通过以下获得,通过点击的view获得整个布局最外的view public void onClickView(View view){ View item = (View) view.getParent().getParent(); ItemBinding bindi...
2018-11-26 13:55:22
423
原创 viewpager+fragment+tablayout自定义标题的刷新及fragemnt内容刷新方案
我们知道tablayout+viewpager要想动态刷新标题可以通过先设置值然后notifyDataSetChanged()来实现,这样会调getPageTitle()来获取标题,相这样 public CharSequence getPageTitle(int position) { String title; if(position==0) ...
2018-11-23 14:54:07
2488
2
原创 Android Databinding多类型支持 RecyclerView.Adapter
使用Data Binding后,RecyclerView.Adapter就变得通用不用去写多个adapter,主要字public class SimpleAdapter<T> extends RecyclerView.Adapter<ViewHolder>{ private List<T> mDatas; private...
2018-11-09 10:37:43
1137
原创 Andriod 文件写入 断电后未写入
在安卓写完文件后断电,或者写完一定时间后断电。重启后发现数据未写入。无论是流写入还是SharedPreferences等写入。后来了解到Linux的写文件时先将文件写入把磁盘缓冲,等空闲是写入磁盘。但是可以通过sync命令强制写入,那么就可以解决这个问题了,只需加入一下代码 //linux sync强制写入,以防止断电(linux写文件非及时) Ru...
2018-11-09 10:03:41
741
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人