首页 文章 精选 留言 我的

精选列表

搜索[技术极客],共10000篇文章
优秀的个人博客,低调大师

Android Things创客DIY第四课-Android Things入门配件包开发案例教程-气象站

这是一个从Android Things官方Weather Station简化而来的例子,去掉了联网和数码管显示,主要演示入门配件包中的BMP280气压温度传感器的用法。 代码可以从Github上下载:https://github.com/sysolve/androidthings-weatherstation 案例代码已升级到Android ThingsDeveloper Preview 7版本,注意开发板系统与代码版本一致。 Weather Station调试图片 BMP280的连接:根据BMP280的定义 The I2C interface uses the following pins: > VCC: 连接至3.3V > GND: 连接至GND > SCK: serial clock (SCL) -- 连接开发板的SCL,即Pin 5 > SDI: data (SDA) -- 连接开发板的SDA,即Pin 3 > CSB must be connected to VDDIO to select I2C interface. -- 本例中使用I2C,即连接至3.3V > SDO: Slave address LSB (GND = ‘0’, VDDIO = ‘1’) -- 本例中设置为1,即连接至3.3V BST-BMP280-DS001-11.pdf 是BMP280芯片的详细文档,可参考。 使用面包板的连接图如下(树莓派和NXP开发板均适用) 面包板的连接图 程序首次启动时,会出现以下异常 FATAL EXCEPTION: main Process: com.sysolve.androidthings.weatherstation, PID: 1693 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sysolve.androidthings.weatherstation/com.sysolve.androidthings.weatherstation.MainActivity}: java.lang.SecurityException: Caller lacks required permission com.google.android.things.permission.MANAGE_SENSOR_DRIVERS 这是因为Android Things不支持动态权限导致的,重启Android Things开发板,即可成功运行。 屏幕上会显示当前的温度和气压,你可以把手放在传感器上使其温度上升,看到温度值的变化。屏幕界面效果如下: 屏幕界面 不连接屏幕,也可以在logcat中看到传感器返回值: 温度和压力值反馈 按照官网的例子,会根据气压值范围显示晴、多云、雨的图标,不过影响气压值的因素很多(海拔、季节),所以这个天气图标是不准确的,纯属娱乐。 下一步工作 后续会增加一些传感器,实现一个多功能的气象站。 考虑到Google Cloud的可用性问题,接入阿里云IoT,实现传感器数据的发布。

优秀的个人博客,低调大师

Android Things创客DIY第三课-Android Things入门配件包开发案例教程-数码管显示

这是一个Android Things Simple PIO的扩展案例,使用入门开发配件包中的以下配件: 1. 1位数码管2. 1KΩ电阻 8个 (1%电阻-蓝色,色环:棕黑黑棕棕)3. 10KΩ电阻 1个 (为方便初学者区分,配件包中的10KΩ电阻为5%电阻-土黄色,色环:棕黑红金;早期发货的10KΩ电阻为1%电阻-蓝色,色环:棕黑黑红棕)4. 透明热缩管5. 按键6. 104电容 实物连接效果 面包板连接示意图 数码管针脚,先串接1K电阻后,再按图中标注的针脚号接入开发板。 数码管接线 代码可以在Github上下载:https://github.com/sysolve/androidthings-digitalDisplay 案例代码已升级到Android ThingsDeveloper Preview 7版本,注意开发板系统与代码版本一致。 代码可直接在树莓派或NXP的PICO开发板上运行。 想要购买Android Things入门开发配件包?https://item.taobao.com/item.htm?id=564158582078 如果你手上已有Google派发的NXP PICO开发板,无需购买树莓派和摄像头。https://item.taobao.com/item.htm?id=564226570619 为方便使用不同开发板的开发者,可直接通过 PIN 脚编号获取GPIO名称,例如: String gpioName = BoardSpec.getInstance().getGpioPin(BoardSpec.PIN_29); 为方便调试,AndroidManifest.xml文件中的IOT_LAUNCHER项已注释,开机不会自动运行。如要开机自动运行,请自行将注释去掉。

优秀的个人博客,低调大师

(8)Launcher3客制化之ContentProvider内容提供者,实现其它应用改动数据库更新等操作

首先加入两个权限 <uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS"/> <uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS"/> 这两个是改动 桌面的数据库的权限 不加入就改动不了哦 直接通过内容提供者获取数据, static ArrayList<ShortcutInfo> getItemsInLocalCoordinates(Context context) { ArrayList<ShortcutInfo> items = new ArrayList<ShortcutInfo>(); final ContentResolver cr = context.getContentResolver(); Cursor c = cr.query(LauncherSettings.Favorites.CONTENT_URI, new String[] { LauncherSettings.Favorites.ITEM_TYPE, LauncherSettings.Favorites.CONTAINER, LauncherSettings.Favorites.SCREEN, LauncherSettings.Favorites.CELLX, LauncherSettings.Favorites.CELLY, LauncherSettings.Favorites.SPANX, LauncherSettings.Favorites.SPANY ,LauncherSettings.Favorites.TITLE,LauncherSettings.Favorites.INTENT}, null, null, null); final int itemTypeIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ITEM_TYPE); final int containerIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CONTAINER); final int screenIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SCREEN); final int cellXIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLX); final int cellYIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLY); final int spanXIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SPANX); final int spanYIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SPANY); final int titleIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.TITLE); final int intenIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.INTENT); try { while (c.moveToNext()) { ShortcutInfo item = new ShortcutInfo(); item.cellX = c.getInt(cellXIndex); item.cellY = c.getInt(cellYIndex); item.spanX = Math.max(1, c.getInt(spanXIndex)); item.spanY = Math.max(1, c.getInt(spanYIndex)); item.container = c.getInt(containerIndex); item.itemType = c.getInt(itemTypeIndex); item.screenId = c.getInt(screenIndex); item.title=c.getString(titleIndex); if(c.getString(intenIndex)!=null){ item.intent=new Intent(c.getString(intenIndex)); } items.add(item); } } catch (Exception e) { items.clear(); } finally { c.close(); } return items; } 改动内容同理通过对于的URL进行改动。 详细我就不进行代码编写了。 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5342666.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册