简体   繁体   中英

How to emulate a gyroscope in an Android Emulator

I am trying to work on stuff related to a gyroscope. My phone does not have a built in gyroscope. Is there a way to include the gyroscope functionality in the emulator, at least make the emulator set in such a way that it behaves as if it had a real gyroscope?

ps I do not need to read any values from the gyroscope, I just want the emulator to think that it has one.

I have searched thoroughly and all I've found was this: http://code.google.com/p/openintents/wiki/SensorSimulator

But this does not make the emulator feel that it has a in built gyroscope, instead it runs an app in the emulator and fetches readings from sensors that are simulated in "SensorSimulator".

Any info would be helpful

在此输入图像描述

The Android Emulator, launched with Android Studio 3.0 can simulate a range of rotation sensors that just might address your use case. We specially added a Gyroscope in the Android Emulator v26.1.0.

I don't think there is any Gyroscope support in the Emulator.

source.android.com's Sensors docs states

The gyroscope cannot be emulated based on magnetometers and accelerometers, as this would cause it to have reduced local consistency and responsiveness. It must be based on a usual gyroscope chip.

I am working on something similar so I'm kind of reading up on what data to collect and what not to.

Gyroscope is newly supported in the Emulator of Android Studio 3.0, released to the Canary Channel on 5/17/17. Note that (as of today) Android Studio 2.3.3 is the latest official (ie "stable") version. Here is how you setup the Preview Version of Android Studio, which can exist concurrently with the official version. Note that running the emulator out of the box won't work, as it's not a recent enough version: 在此输入图像描述

You need to follow the 'change your update channel' steps in the latter link: select File > Other Settings > Default Settings and update from the Canary Channel: 在此输入图像描述 Note that while running a Virtual Device with Android 7+ (aka API 26) did show Gyroscope output in the emulator's Virtual Sensors (within Extended Controls), it does not (at least yet) send that output to the virtual device; to actually see the environment in the sample app move as I moved the phone, I had to use Android 7.1.1 (API 25).

(Thanks to @jamal-eason for the protip!)

PREVIOUS (6/12/17):

As of the date of writing the release version of the Android Emulator (in Android Studio 2.3.3) does not offer Gyroscope support.

While the documentation referenced by @Nesski suggests this, I offer the following as proof:

The Android SDK's Virtual Reality getting started demo is the game called Treasure Hunt . Here is what it looks like when played on a phone. Notice that the camera moves as the player looks around.

Of the handful of devices compatible with the Google Daydream - because they contain an internal Gyroscope - Android Studio's AVD Manager offers only two of them: the Pixel and Pixel XL. I downloaded two virtual devices for each of those phones so that I could run the latest two Android versions (7.1.1 and 8.0) on each device:

我在模拟器中测试的虚拟设备

I ran each device in the Emulator, and got similar results: press CTRL + SHIFT + C (on Windows) to bring up the Extended Controls , and you'll be able to test the phone's Virtual Sensors:

在此输入图像描述

Using its Rotate controls, you'll notice that while there is Accelerometer output, Magnetometer output, and Rotation output, there is no Gryroscope output . You can rotate the phone as if you were looking around, but the game's camera view does not change as the phone is moved.

While this sad reality is unfortunate, I do, however, hope and expect Android to add Gyroscope support to the emulator in the future as more developers jump on the Google Daydream Virtual Reality bandwagon.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM