`
jacky-zhang
  • 浏览: 315737 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Android重力感应模拟器实现与实例开发(转)

阅读更多
原址http://wxmijl.blog.163.com/blog/static/13245928201062734631474/
Sensor Simulator是重力感应模拟器,下载地址如下:
http://code.google.com/p/openintents/downloads/detail?name=sensorsimulator-1.0.0-beta1.zip&can=2&q=



在你的就应用里怎样使用 SensorSimulator
如果你从没使用过,请在你的模拟器中安装OpenIntents.apk

Add the external JAR openintents-lib-n.n.n.jar into your project.
Replace the following code in onCreate():
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
by this code
// Before calling any of the Simulator data,
// the Content resolver has to be set !!
Hardware.mContentResolver = getContentResolver();

// Link sensor manager to OpenIntents Sensor simulator
mSensorManager = (SensorManager) new SensorManagerSimulator((SensorManager)
                              getSystemService(SENSOR_SERVICE));
By default this still passes the original sensor values, so to activate sensors you have to first call (to set the sensor settings):
Intent intent = new Intent(Intent.ACTION_VIEW,
Hardware.Preferences.CONTENT_URI);
startActivity(intent);
and then
// first disable the current sensor
mSensorManager.unregisterListener(mGraphView);

// now connect to simulator
SensorManagerSimulator.connectSimulator();

// now enable the new sensors
mSensorManager.registerListener(this,
           SensorManager.SENSOR_ACCELEROMETER |
           SensorManager.SENSOR_MAGNETIC_FIELD |
           SensorManager.SENSOR_ORIENTATION,
           SensorManager.SENSOR_DELAY_FASTEST);
All other code stays untouched. You can find reference code for how to implement sensors in the API demos / OS / Sensors.java.
Usually one would (un)register the sensors in onResume() and onStop():
    @Override
    protected void onResume() {
        super.onResume();
        mSensorManager.registerListener(this,
                SensorManager.SENSOR_ACCELEROMETER |
                SensorManager.SENSOR_MAGNETIC_FIELD |
                SensorManager.SENSOR_ORIENTATION,
                SensorManager.SENSOR_DELAY_FASTEST);
    }
  
    @Override
    protected void onStop() {
        mSensorManager.unregisterListener(mGraphView);
        super.onStop();
    }
Then just implement the standard Android SensorListener (there is no OI counterpart necessary).
class MySensorActivity extends Activity implements SensorListener {
    public void onSensorChanged(int sensor, float[] values) {
        // do something with the sensor values.
    }
}
Note 1: The OpenIntents class SensorManagerSimulator is derived from the Android class SensorManager and implements exactly the same functions (see Android SensorManager). For the callback, the standard Android SensorListener is used. The only new functions are connectSimulator() and disconnectSimulator().
Note 2: Whenever you are not connected to the simulator, you will get real device sensor data: the org.openintents.hardware.SensorManagerSimulator class transparently calls the SensorManager returned by the system service in this case.
分享到:
评论

相关推荐

    Android应用源码之Android重力感应跑步测速应用_源码.zip

    该Android应用源码展示了如何利用Android设备的重力感应器来实现跑步测速功能。在Android平台上,开发者可以通过Android传感器API来访问设备的各种传感器数据,包括重力感应器。这个应用的核心技术点主要包括以下几...

    Android源码——重力感应的测试程序源码.zip

    10. **调试与测试**:对于这个测试程序源码,开发者可以通过Android Studio的模拟器或实际设备运行代码,观察重力感应器事件的变化,以验证程序是否正确地响应了设备的运动。 通过学习和理解这些知识点,开发者可以...

    Android应用源码之讲重力感应.zip

    这份"Android应用源码之讲重力感应.zip"压缩包文件包含了一个实例,深入讲解了如何在Android应用中实现并利用重力感应器的功能。 首先,我们要了解的是Android中的传感器系统。Android平台提供了Sensor框架,它允许...

    android GSensor 重力小球实例程序

    5. **重力感应数据**: GSensor不仅可以感知用户的运动,还能分离出重力成分。在静止状态下,加速度计在Z轴上会读出大约9.81,对应地球的重力加速度。 6. **小球移动逻辑**: 实例程序中的“小球”可能是一个...

    android传感器使用实例

    由于Android模拟器不支持硬件传感器,因此所有的测试与调试都需要在真实的Android设备上进行。 首先,我们需要了解Android的SensorManager服务,它是访问设备传感器的主要入口点。通过`getSystemService(Context....

    华为模拟器,含安装包及下载链接,相关教程

    3. **多开与分屏**:华为模拟器支持同时开启多个模拟器实例,方便用户进行多任务处理或同时运行多个应用。此外,还支持分屏模式,可以在一个屏幕上同时显示两个应用,提高工作效率。 4. **硬件模拟**:模拟器能模拟...

    DrifBall1.rar_DrifBall1_android_drifba_sensorsimulator 1.1

    只需在桌面启动该模拟器,然后在模拟器上运行游戏,就能模拟各种环境下的重力感应效果,这对于游戏开发和调试阶段极为方便。 此外,"DrifBall1"的源码也揭示了Android应用程序的生命周期管理,包括如何在暂停、恢复...

    基于Android的传感器技术应用开发设计说明.doc

    国外的智能手机应用市场已经相当成熟,许多创新应用充分利用了传感器技术,如健身应用跟踪用户的步数和运动轨迹,游戏应用通过重力感应实现沉浸式游戏体验。这些成功案例启示我们,传感器技术是提升应用竞争力的关键...

    android摄像头.doc

    虽然有些第三方组织声称已经实现了模拟器上的重力感应等硬件功能,但这些方案并不普遍且可能存在兼容性问题。 #### 三、摄像头应用开发实例 接下来,我们将通过一个具体的例子来展示如何在Android设备上开发一个...

    Android 2.0游戏开发实战宝典-源代码1-16章(全)

    3. **第4章**:可能讲解如何处理游戏的用户输入,包括触摸事件、重力感应、键盘输入等,让游戏对玩家的操作做出响应。 4. **第7章**:可能涵盖游戏中的物理引擎或碰撞检测技术,这是实现游戏物体动态行为的关键,...

    android摄像头[参考].pdf

    虽然有一些第三方组织声称已经能够模拟部分硬件特性(如重力感应),但这些功能并未被广泛验证或集成到官方模拟器中。 #### 三、实现摄像头功能的步骤 ##### 1. 创建OPhone项目 首先,通过OPhone开发工具(ODT)...

    Android 吹一吹效果源码-IT计算机-毕业设计.zip

    在Android开发领域,"吹一吹效果"通常指的是利用手机传感器实现的一种互动特效,比如通过重力感应器或麦克风来模拟用户吹气的动作,并在屏幕上产生相应的视觉反馈。这个项目是一个毕业设计的实例,旨在帮助学生理解...

    KEmulator 手机模拟器

    - **传感器模拟**:如重力感应器、陀螺仪、GPS等,让开发者能够测试应用在各种环境下的响应。 - **调试工具集成**:内置了强大的调试工具,如Logcat、性能分析器等,方便开发者定位问题。 - **键盘映射**:支持将...

    Android源码——樱花漂落的动态壁纸.zip

    - 还可以通过监听设备的传感器数据(如重力感应器),使樱花动态响应设备的物理变化。 5. **服务生命周期管理** - `WallpaperService`的`onCreateEngine()`方法创建`Engine`实例,`onDestroy()`则用于释放资源。 ...

    Android指南针

    下面我们将详细探讨Android指南针的实现原理、涉及的技术点以及如何进行开发。 一、指南针的基本原理 1. 磁场感知:指南针的工作基础是地球的磁场。地球有一个全球性的磁场,磁北极位于地理南极附近,磁南极则位于...

    genymotion-2.6.0

    Genymotion是一款强大的Android模拟器,专为开发者设计,用于测试和开发Android应用程序。它以其高性能、用户友好的界面和广泛的设备配置选项而受到赞誉。Genymotion 2.6.0是该软件的一个特定版本,针对Mac操作系统...

    Android服务Service_详解

    **8.2.2 在模拟器上模拟重力感应** 在模拟器中,可以使用命令行工具来模拟设备的传感器数据,比如重力感应。这有助于测试与运动相关的功能,例如: ```bash emulator -sensor orientation ``` #### 8.3 时间服务 ...

Global site tag (gtag.js) - Google Analytics