我的三星 Galaxy S2 有一个加速度计和陀螺仪。使用这 2 个传感器,我需要确定一个人是否坠落。我如何以最佳方式实施它?
我正在研究一些iPhone应用程序,我想制作一个轴承,一个移动到特定地理位置的图像,具体取决于使用加速度计的用户位置.
我在这里读了很多答案,但没有得到解决方案.
我有当前的位置坐标和目的地坐标.
您有任何想法或示例代码吗?谢谢.
我需要检测Android设备方向更改,而无需手动使用传感器数据,同时保持活动方向坚持某些方向
onConfigurationChange 不会起作用,因为我的活动会不会旋转.
使用传感器数据来检测方向变化我认为这是一个轮子的发明,因为android已经有嵌入式算法实现来检测设备方向的变化.另一方面,方向变化的检测不是这样的简单检查.
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3) {
return;
}
//getResources().getConfiguration().orientation;
if (event.values[1] < 6.5 && event.values[1] > -6.5) {
if (orientation!=1) {
Log.d("Sensor", "Protrait");
}
orientation=1;
} else {
if (orientation!=0) {
Log.d("Sensor", "Landscape");
}
orientation=0;
}
}
Run Code Online (Sandbox Code Playgroud)
它确实需要真正的数据处理,例如从噪声过滤和突然短暂的抖动/旋转.
那么有什么想法可以使用传统服务检测设备方向?(再一次,我会把我的活动坚持到某个方向,所以onConfigurationChange不会起作用)
我在iOS上实现了一个计步器.一个重要的要求是,即使应用程序处于后台模式(例如,设备被锁定或用户按下主页按钮),它也必须工作.您可以在App Store中看到这样的实现,如Nike +,Runtastic Pedometer等.
一些SO帖子证实,这可以通过Core Motion实现,或者特别是CMMotionManager具有Required background modes设置为的附加属性location.
我使用下面的代码进行了快速测试,发现了一个奇怪的问题:
// AppDelegate.m
- (void)applicationDidEnterBackground:(UIApplication *)application
{
if(self.motionManager==nil) {
self.motionManager=[[CMMotionManager alloc] init];
}
self.motionManager.accelerometerUpdateInterval=1/50;
if(self.accelerometerReadings==nil)
self.accelerometerReadings=[[NSMutableArray alloc] init];
[self.motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
[self.accelerometerReadings addObject:accelerometerData];
});
}
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"The number of readings %d",self.accelerometerReadings.count);
// do something with accelerometer data...
}
Run Code Online (Sandbox Code Playgroud)
我用iPhone 4S和iOS 6.1试过这段代码.当应用程序启动时,我按下主页按钮并摇动它(模拟行走)5秒钟,然后再次打开应用程序.这些动作重复了几次.我得到的输出是:
2013-02-05 16:41:42.028 [1147:907] readings 0
2013-02-05 16:41:51.572 [1147:907] readings 444
2013-02-05 16:42:00.386 [1147:907] readings …Run Code Online (Sandbox Code Playgroud) accelerometer background-process ios core-motion cmmotionmanager
二手LG Nexus 4,Android 4.3
返回值有时是假的,我不明白为什么.文档说:"如果传感器得到支持并成功启用,则为true."
奇怪的是,我见过的没有例子是测试SensorManager.registerListener的返回值.
奇怪的是,如果我忽略了返回错误的值,那么一切都按预期工作!
文档:http: //developer.android.com/reference/android/hardware/SensorManager.html
android.hardware.SensorManager,android.hardware.SystemSensorManager
我的代码:
SensorManager sensorMgr = (SensorManager)_context.getSystemService(Context.SENSOR_SERVICE);
if (sensorMgr == null) {
Log.w(TAG, "200410::Sensors not supported");
return false;
}
Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_PROXIMITY);
result = sensorMgr.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
if( result == false) {
// Normally something should be done here
// since the false return value indicated that registration failed.
// But I found it's better doing nothing since the registration seams to be ok
}
return result;
Run Code Online (Sandbox Code Playgroud)
在Android 4.3之前没有发生奇怪的错误返回值 …
我正在创建一个 Android Wear 应用程序,它试图检测一些手部动作,为此,我需要持续监控加速度计输出。我想知道它会如何影响电池寿命。
对于手机,我知道有“屏幕关闭时禁用加速度计”之类的方法可以节省电池,但是手表的电池成本是多少?由于 Android 手表可以计算您的步数,并且当您将其面向您的脸时它会打开屏幕,因此我相信无论如何加速度计一直处于打开状态。
在这种情况下,我的应用程序会耗尽电池电量吗?
(接收加速度计值后的计算将非常简单。)
我曾经使用eclipse与android sdk,但我刚刚下载了android studio.我想使用加速度计,但由于某种原因,我一直得到同样的问题."类或接口预期"我附上下面的代码,如果有人能给我一个问题的解决方案,我将被迫.
package com.example.symbox.myapplication;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity implements SensorEventListener {
private float mLastX, mLastY, mLastZ;
private boolean mInitialized;
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private final float NOISE = (float) 2.0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInitialized = false;
mSensorManager = (SensorManager) getSystemService(Context.SEARCH_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(this, mAccelerometer, …Run Code Online (Sandbox Code Playgroud) 我目前正在做一个应用程序,通过手机中的加速度计检测道路上的坑洼。我遇到的问题是我需要重新定向加速度计轴以与汽车轴对齐。
我从网上的一份报告中找到了以下解释,但我不知道如何使用 GPS 计算后旋转以及如何监控预旋转角度。
网上的解释:
“手机可以放在任何任意方向,因此,它是嵌入式加速度计。因此,在分析信号之前,它必须沿着车辆的轴定向。该系统使用基于欧拉角的算法进行重新定向。传感器实际上是沿着使用预旋转、倾斜和后旋转角度(欧拉角)计算车辆的轴。使用 GPS 计算后旋转角度,因此为了避免额外的能量消耗,预旋转和倾斜角度会被连续监测,只要有任何在这些角度发生重大变化时,GPS 已打开,重新定向过程将再次完成。”
我已经搜索了使用 phonegap 查找设备方向的方法,但我能找到的只是航向方向插件,它似乎用于提供手机的指南针方向。
任何建议或什至替代方法都将不胜感激。
我发现有可能使用加速度计进行"敲击解锁" http://www.knocktounlock.com/.
我在swift中找到了这个:Swift CoreMotion在后台检测设备上的Tap或Knock
有没有人有兴趣为Android制作它?我是移动开发的新手.
如果你在android java中分享一些源代码,我将非常感激!
最好的祝福,
Mudin
android accelerometer android-sensors android-studio mobile-development
我正在使用加速度计传感器实现跌倒检测,并创建以下代码。
public void onSensorChanged(SensorEvent foEvent) {
if (foEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
double loX = foEvent.values[0];
double loY = foEvent.values[1];
double loZ = foEvent.values[2];
double loAccelerationReader = Math.sqrt(Math.pow(loX, 2)
+ Math.pow(loY, 2)
+ Math.pow(loZ, 2));
mlPreviousTime = System.currentTimeMillis();
Log.i(TAG, "loX : " + loX + " loY : " + loY + " loZ : " + loZ);
if (loAccelerationReader <= 6.0) {
moIsMin = true;
Log.i(TAG, "min");
}
if (moIsMin) {
i++;
Log.i(TAG, " loAcceleration : " + loAccelerationReader);
if …Run Code Online (Sandbox Code Playgroud) accelerometer ×10
android ×7
ios ×2
automation ×1
autorotate ×1
battery ×1
cordova ×1
core-motion ×1
geolocation ×1
gps ×1
gyroscope ×1
iphone ×1
java ×1
orientation ×1
proximity ×1
sensor ×1
sensors ×1
wear-os ×1
xcode ×1