刚跟进一个项目,树莓派搭载AndroidThings系统,使用以太网卡接入网络。因为树莓派默认是通过Dhcp动态获取地址的,而设备需要直接插入交换机,地址分配比较麻烦(其实我也不懂咋回事),然后就想着给树莓派设置静态ip。坑,就这样开始了。。。
首先想到的是去系统里找dhcp.conf配置文件,修改成静态地址。最终,没找到配置文件!
然后想着修改系统里的init.rc文件,感觉每次系统启动都会启动各种服务在这里使用ifconfig命令改ip应该可以。改了,没反应!
没办法,百度吧。发现安卓5.0之后就支持以太网卡了,然后有个EthernetManager类。
使用EthernetManager修改以太网卡静态ip地址参考:https://www.jianshu.com/p/e1191c41d70a
以为这样就结束了?问题又来了,EthernetManager等一些工具被隐藏了,或者说在Android Studio下载的SDK里的Api是阉割版的。好吧继续解决,既然是阉割版的那就找个完整版的替换过来。上链接:https://www.jianshu.com/p/fbf45770ecc8。
替换jar包后重启studio,诶,好像可以了,不飘红了,运行试试吧。直接崩溃,查看日志,没有CONNECTIVITY_INTERNAL权限。手动添加,不行、动态获取,还是不行。
继续百度,原来这个权限是系统权限,就算动态获取也获取不到。继续想办法吧,既然需要系统权限那就把app改成系统应用。上链接:https://blog.csdn.net/qq_33994844/article/details/65648639。
把重新签名的app导入设备,完美运行!!!
不知道以后还有什么坑,慢慢填吧。。。
本来是想把需要的东西都传到github上的,表示github还没整明白,惭愧惭愧-_-#。
先把签名文件上传到这里吧。安装系统签名文件:https://download.csdn.net/download/weixin_41722842/10676120
特别鸣谢:https://www.jianshu.com/p/e1191c41d70a