智能手机传感器的多样化应用

随着移动设备作为计算平台的成熟,它们获得了更丰富的功能,这些进步常常伴随着新传感器的引入。智能手机上集成了众多生理感官,例如摄像头让设备“看”到外部世界,麦克风则让设备“听”。事实上,黑莓10手机配备了前后双摄像头和双麦克风,以实现空间分辨率。

除了摄像头和麦克风,还有其他方式让设备“看”到世界,比如光线和接近传感器。将黑莓10设备视为传感器,自然可以引出确定环境上下文的方法,并基于这些提供无与伦比的用户体验。作为开发者,可以在应用程序中利用以下类型的传感器:加速度计、磁力计、温度传感器、陀螺仪、指南针、接近传感器、枪套、旋转传感器、GPS、麦克风和摄像头。

为了获取更多信息,请查看传感器文档,并开始构建应用程序。

文档很好,但示例对于开发者来说更具可读性。考虑到这一点,还提供了一个既实用又有趣的示例应用程序

对此非常兴奋,并期待看到如何将传感器集成到应用程序中。让打破传感器只用于游戏和地图的误解!

示例应用程序 - SensorDemo

SensorDemo示例展示了如何使用QtSensor模块来实现3D旋转、运动报警、指南针、手电筒、运动报警和碰撞检测。这个示例是在原生层(Cascades/QML)上制作的。

黑莓10原生SDK Beta 3

克隆示例仓库sample application

启动黑莓10原生SDK Beta 3,从文件菜单中选择导入。

展开“常规”,选择“将现有项目导入工作区”。点击下一步。

浏览到示例目录位置,然后点击确定。

示例项目应该显示在项目部分。点击完成将项目导入工作区。

在项目资源管理器窗格中,右键单击项目(例如SensorDemo),然后选择构建项目。

在项目资源管理器窗格中,右键单击项目(例如SensorDemo),然后选择“以黑莓C/C++应用程序运行”。

应用程序现在将安装并启动在设备上;如果没有,可能需要设置环境

import bb.cascades 1.0 import QtMobility.sensors 1.2 TabbedPane { id: tabPane showTabsOnActionBar: true onCreationCompleted: { OrientationSupport.supportedDisplayOrientation = SupportedDisplayOrientation.All; tabPane.activeTab = compassTab; } /* Block of statements for other tabs such as Motion Alarm, Compass, Flashlight, Motion Alarm and Collision Detector. */ Tab { id: rotation3DTab title: qsTr("Rotation 3D") imageSource: "images/rotation3d.png" Page { ControlDelegate { source: "rotation3D.qml" delegateActive: (tabPane.activeTab == rotation3DTab) } } } } import bb.cascades 1.0 import bb.multimedia 1.0 import QtMobility.sensors 1.2 Container { //! [0] attachedObjects: [ RotationSensor { id: rotation // Create variables to hold rotation reading values property real x: 0 property real y: 0 property real z: 0 // Turn on the sensor active: true /* Keep the sensor active when the app isn't visible or the screen is off (requires app permission in bar-descriptor) */ alwaysOn: true /* If the device isn't moving (x&y&z==0), don't send updates, saves power */ skipDuplicates: true onReadingChanged: { // Called when a new rotation reading is available x = reading.x y = reading.y z = reading.z } } ] //! [0] layout: DockLayout {} ImageView { horizontalAlignment: HorizontalAlignment.Center verticalAlignment: VerticalAlignment.Center imageSource: "images/device.png" } Container { layout: AbsoluteLayout {} //! [1] Label { layoutProperties: AbsoluteLayoutProperties { positionX: 480 positionY: 685 } text: qsTr("%1°").arg(rotation.x.toPrecision(4)) textStyle { base: SystemDefaults.TextStyles.BodyText color: Color.Yellow fontWeight: FontWeight.Bold } } //! [1] Label { layoutProperties: AbsoluteLayoutProperties { positionX: 480 positionY: 460 } text: qsTr("%1°").arg(rotation.y.toPrecision(4)) textStyle { base: SystemDefaults.TextStyles.BodyText color: Color.Yellow fontWeight: FontWeight.Bold } } Label { layoutProperties: AbsoluteLayoutProperties { positionX: 335 positionY: 390 } text: qsTr("%1°").arg(rotation.z.toPrecision(4)) textStyle { base: SystemDefaults.TextStyles.BodyText color: Color.Yellow fontWeight: FontWeight.Bold } } } }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485