博客 页面 4

哪些学校正在使用《Arduino程序设计基础》做教材

0

重庆大学、郑州大学、厦门大学,吉林大学,电子科技大学,长春理工大学,郑州轻工业学院,西安文理学院。

预计国内已经有20多所学校在使用《Arduino程序设计基础》做教材了,这也是对我的肯定,谢谢选择该书的学校和老师。

ionic/cordova如何写一个后台服务

0

一个cordova解决方案:

https://github.com/Red-Folder/bgs-core

看起来好复杂

看来不管用什么方案,都要有android基础才行。

关于android服务的学习:

https://www.cnblogs.com/huolongluo/p/6340743.html

https://blog.csdn.net/a704225995/article/details/56481934

官方文档:

https://developer.android.com/training/run-background-service/create-service?hl=zh-cn

学习cordova-plugin-autostart插件经验

0

cordova-plugin-autostart项目地址:

https://github.com/ToniKorin/cordova-plugin-autostart

一开始没细看readme,直接用enable(),自启动是生效了,但打开的是app。

如果是开发一些基于android专用设备,用这种自启动方式很有效。如,银行排号机、自动售货机、早教机等等,可以开机直接启动,再加了无法退出,就可以满足多种使用场景了。

我只想启动后就在后台运行,不让用户察觉,尝试了多种方案均无法达到理想效果。

 

遂决定先读懂插件,尝试自己写。

下面这篇文章写的很好,给出了多种自启动并保持方案:

https://blog.csdn.net/crissjs/article/details/38293441

阅读源码过程中,发现了autostart插件中居然还有个enableService()函数。由于我使用的ionic,其

@ionic-native/autostart 中并没有提供enableService()接口,这个很坑。
原来插件本身是可以自启动服务的,但怎么用还是个问题,readme没有写明,还是要自己阅读源代码才行。

分析程序从main入手,分析插件也是如此,先找到其入口AutoStart.java。其中主要是使能了启动的信号接收器,没毛病。

再看config.xml,其中有其第二入口,这里第二入口自启动的入口:

其plugin中注册了几个receiver,分别是:

android.intent.action.BOOT_COMPLETED//启动完成
android.intent.action.USER_PRESENT//解锁屏幕
android.intent.action.MY_PACKAGE_REPLACED//包更新

这些动作可以触发对应函数执行

具体怎么调用的可以看cordova文档,也不深究了。

启动完成后执行的文件实际上就是BootCompletedReceiver.java中的:

再看appStarter.java,看注释就可以找到最后启动服务的代码。

其中使用到IntentService,关于IntentService可见:

https://blog.csdn.net/p106786860/article/details/17885115

这篇文章开头就很清晰的说了IntentService和普通服务的区别。

所以关键代码:

参数context为当前包名,serviceClassName为要启动的服务类名。

真相大白了,cordova-plugin-autostart可以启动服务,只要指定服务类名即可,当然你要另外写服务,这个插件里没法写。
现在的问题核心落到了,如何写一个android原生服务上了。
也许可用的资源:
https://github.com/Red-Folder/bgs-core

ionic/cordova自启动后台服务

0

https://github.com/katzer/cordova-plugin-background-mode

实际试验不行,看issues中的贡献者回复:

This plugin was never meant to run while the app is closed. It is not a service, it’s just trying to keep the app alive.

该插件不是一个服务,因此无法实现

 

参考:

https://blog.csdn.net/robert_cysy/article/details/54097206

https://stackoverflow.com/questions/10343828/creating-an-android-service-with-phonegap-have-phonegap-app-run-even-when-clos

https://blog.csdn.net/crissjs/article/details/38293441

 

参考项目:

https://github.com/ToniKorin/cordova-plugin-location-provider/blob/master/src/android/LocationService.java

webRTC服务器部署

0

webrtc需要两个配合服务器程序:信令服务器和穿透服务器

穿透服务器

参考:https://www.cnblogs.com/idignew/p/7440048.html

穿透服务器使用coturn
https://github.com/coturn/coturn

配置turnserver.conf

启动:

turnserver -v -r  外网地址:3478 -a -o -c /etc/turnserver.conf

停止:

ps -ef|grep turnserver
kill -9 xxxx

信令服务器

https://github.com/priologic/easyrtc

 

ubuntu安装node

0

 

使用Hammer.js获取点击位置在元素中的相对坐标

0

https://github.com/hammerjs/hammer.js/issues/572

 

ionic/cordova推送通知

0

https://ionicframework.com/docs/native/push/

https://github.com/phonegap/phonegap-plugin-push

经研究以上推送插件,需要配合推送服务器才能使用。由于我APP中已经有Mqtt长连接了,我想直接利用MQTT来实现推送。
群友指导可以使用本地推送插件:
https://ionicframework.com/docs/native/local-notifications/
https://github.com/katzer/cordova-plugin-local-notifications

blinker——三分钟实现手机控制Arduino/esp8266/esp32

0

blinker是一个物联网接入方案,旨在让大家可以畅快DIY自己物联网设备
ios、android都支持,本地、远程都支持,蓝牙、WiFi都支持
可自己拖拽布局设备控制界面,自由打造你的物联网设备

Blinker官方网站:https://blinker-iot.com
github:https://github.com/blinker-iot
QQ群:301438087
社区支持:https://www.arduino.cn/forum-132-1.html

快速开始

blinker当前接入方式有二:蓝牙 和 WiFi,理论上只要是支持蓝牙或者WiFi的设备,都可以使用blinker连接
未来计划支持的接入方式:nbiot
我们提供了对主流硬件平台支持,点击你希望使用的设备和接入方式,即可查看快速接入教程

Arduino
Arduino&蓝牙模块
WiFiduino / esp8266开发板
esp8266&WiFi
esp8266&MQTT
esp32开发板
esp32&WiFi
esp32&蓝牙
树莓派 / Linux开发板
树莓派&WiFi
树莓派&蓝牙

开发指南

自定义界面
组件指令介绍
其他WiFi设备接入
其他蓝牙设备接入

FAQ

1.什么硬件可以连接blinker?
硬件支持情况
2.是否可以远程控制设备?
blinker具备远程控制能力,但目前我们对DIY用户只开放了局域网或蓝牙控制的权限
3.是否支持IOS?
支持,IOS APP审核中,很快会上线

blinker轻松物联网 o(*´∀)´∀)*´∀)*´∀)o
https://blinker-iot.com/

code push提示zip is not define

0

使用code push下载更新后,报错:zip is not define
一开始以为是权限问题,尝试了各种方法,都没有解决
后看java源码,提示调用的zip.unzip时zip没有定义
又看package.json里面是有cordova-plugin-zip的
又发现/src/plugin里没有cordova-plug-zip,遂安装,问题得以解决。

发现是安装code posh时安装的zip,但cordova-plug-zip没有被写入config.xml,所以run android时没有安装