标签: sensor

有没有办法监控用户的iphone移动,如"提高说话"功能?

我希望在用户将iphone抬到脸上时收到通知.就像siri一样.可能吗?

添加更具体的要求:当用户将手机放在耳边时,我想让屏幕变暗.我知道可以启用接近传感器来实现这一点.但令人讨厌的是,当用户将手指移到传感器上时,屏幕会不时变暗.所以我想知道如何避免这种情况,只有当用户抬起iphone说话时才会使屏幕变暗?

sensor proximity ios siri

4
推荐指数
1
解决办法
1668
查看次数

如何在android中启用传感器模拟器?

Intent intent = new Intent(Intent.ACTION_VIEW, 
Hardware.Preferences.CONTENT_URI); 
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

当我给上面的代码启用传感器....他们显示错误.... @ Hardware.Preferences.CONTENT_URI); ...说创建类硬件... PLZ帮助...我是初学者在android ...

android sensor

3
推荐指数
1
解决办法
6711
查看次数

Android传感器:getRotationMatrix()返回错误的值,为什么?

自从我开始使用此功能并且尚未成功获得有效结果以来已过去几天.

我想要的基本上将加速度矢量从设备坐标系转换为真实世界坐标.我知道这是可能的,因为我有相对坐标的加速度,我知道设备在现实世界系统中的方向.

阅读Android开发人员似乎使用getRotationMatrix()我得到R =旋转矩阵.

因此,如果我想要A(世界系统中的加速度矢量)来自A'(电话系统中的加速度矢量),我必须做到:

  A=R*A'
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么矢量A总是第一个和第二个零件为零(例如:+0,00; -0,00; +6,43)

我目前的代码与此类似:

  public void onSensorChanged(SensorEvent event) {
     synchronized (this) {   
        switch(event.sensor.getType()){
        case Sensor.TYPE_ACCELEROMETER:
            accelerometervalues = event.values.clone();
            break;
        case Sensor.TYPE_MAGNETIC_FIELD:
            geomagneticmatrix =event.values.clone();
            break;
        }
        if (geomagneticmatrix != null && accelerometervalues != null) {
            float[] Rs = new float[16];
            float[] I = new float[16];
            SensorManager.getRotationMatrix(Rs, I, accelerometervalues, geomagneticmatrix);
            float resultVec[] = new float[4];
            float relativacc[]=new float [4];
                relativacc[0]=accelerationvalues[0];
                relativacc[1]=accelerationvalues[1];
                relativacc[2]=accelerationvalues[2];
                relativacc[3]=0;
            Matrix.multiplyMV(resultVec, 0, Rs, 0, relativacc, 0); …
Run Code Online (Sandbox Code Playgroud)

math android matrix sensor coordinates

3
推荐指数
1
解决办法
6464
查看次数

Android重力感应器(TYPE_GRAVITY)为2.1

我有为2.3.3设计的软件,我使用的是重力传感器.

代码如下 -

private SensorManager sman = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
private Sensor magnetfield, gravity;
...
magnetfield = sman.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
gravity = sman.getDefaultSensor(Sensor.TYPE_GRAVITY);
Run Code Online (Sandbox Code Playgroud)

我决定添加对2.1版的支持.但是在2.1中似乎不支持TYPE_GRAVITY,并且我得到一个Sensor.TYPE_GRAVITY无法识别的错误.

问题 - A)当我搜索"Android重力传感器2.1"时,谷歌链接到2.1设备中演示重力传感器的视频.这是否意味着有办法获得它?B)如果没有,那么可以使用它的最低版本是什么?无法在SDK中找到它.

谢谢

android sensor

3
推荐指数
1
解决办法
5730
查看次数

无法访问Android中的传感器

我正在编写罗盘应用程序但由于某种原因无法访问所需的传感器.我已经实现了SensorEventListener接口并以这种方式注册我的传感器:

    sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    magnetometer = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
Run Code Online (Sandbox Code Playgroud)

在我的onSensorChange()方法中:

public void onSensorChanged(SensorEvent event) {
    Toast t = Toast.makeText(this, "onSensorChanged", Toast.LENGTH_LONG);
    t.setGravity(Gravity.TOP, 0, 0);
    t.show();
    if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
        mGravity = event.values;
    }
    if(event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD){
        mGeomagnetic = event.values;
    }

    if(mGravity !=null && mGeomagnetic !=null){
        float [] R = new float[9];
        float [] I = new float [9];
        boolean success = sensorManager.getRotationMatrix(R, I, mGravity, mGeomagnetic);
        if(success){
            float [] orientation = new float [3];
              sensorManager.getOrientation(R, orientation);
            north …
Run Code Online (Sandbox Code Playgroud)

android sensor

3
推荐指数
1
解决办法
2万
查看次数

Android Pitch and Roll问题

我正在开发适用于Android的倾斜应用.我遇到了纵向和横向模式的问题.当音高= 90度(电话结束)时,甚至在滚动值没有发生任何物理变化时,滚动值变得疯狂之前.我一直无法找到解决这个问题的方法.如果有人能指出我正确的方向,我们将不胜感激.

这是一个简短的代码转储,所以你知道它不是加速度计误差.

final SensorEventListener mEventListener = new SensorEventListener(){
     public void onAccuracyChanged(Sensor sensor, int accuracy) {}  
 public void onSensorChanged(SensorEvent event) {
     setListners(sensorManager, mEventListener);

      SensorManager.getRotationMatrix(mRotationMatrix, null, mValuesAccel, mValuesMagnet);
     SensorManager.getOrientation(mRotationMatrix, mValuesOrientation);


        synchronized (this) {

            switch (event.sensor.getType()){
                case Sensor.TYPE_ACCELEROMETER:

                    System.arraycopy(event.values, 0, mValuesAccel, 0, 3);

                    long actualTime = System.currentTimeMillis();

                    //Sensitivity delay
                    if (actualTime - lastUpdate < 250) {
                        return;
                        }
                    else {
                        sysAzimuth = (int)Math.toDegrees(mValuesOrientation[0]);
                        sysPitch = (int)Math.toDegrees(mValuesOrientation[1]);
                        sysRoll = (int)Math.toDegrees(mValuesOrientation[2]);

                        //invert direction with -1
                      pitch = (sysPitch - pitchCal)*-1;
                      roll = (sysRoll - …
Run Code Online (Sandbox Code Playgroud)

android sensor pitch tilt

3
推荐指数
1
解决办法
1万
查看次数

什么是LM35(温度传感器)的摄氏转换系统?

我看到公式如此

temp = (5*val*100/1024) 
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这个配方的细节?

arduino sensor

3
推荐指数
1
解决办法
3万
查看次数

为什么<android/sensor.h>缺少某些传感器的枚举值?使用它们是否安全?

似乎缺少某些传感器的枚举值<android/sensor.h>.

该文件定义了以下枚举:

/*
 * Sensor types
 * (keep in sync with hardware/sensor.h)
 */

enum {
    ASENSOR_TYPE_ACCELEROMETER      = 1,
    ASENSOR_TYPE_MAGNETIC_FIELD     = 2,
    ASENSOR_TYPE_GYROSCOPE          = 4,
    ASENSOR_TYPE_LIGHT              = 5,
    ASENSOR_TYPE_PROXIMITY          = 8
};
Run Code Online (Sandbox Code Playgroud)

评论说这个枚举是同步的<hardware/sensor.h>(没有暴露,它是android源码的一部分).

但是<hardware/sensor.h>我发现了许多更有用的传感器的价值,如压力,温度和湿度传感器:

#define SENSOR_TYPE_ACCELEROMETER         (1) 
#define SENSOR_TYPE_GEOMAGNETIC_FIELD     (2) 
#define SENSOR_TYPE_ORIENTATION           (3)
#define SENSOR_TYPE_GYROSCOPE             (4)
#define SENSOR_TYPE_LIGHT                 (5)
#define SENSOR_TYPE_PRESSURE              (6)
#define SENSOR_TYPE_TEMPERATURE           (7)
#define SENSOR_TYPE_PROXIMITY             (8)
#define SENSOR_TYPE_GRAVITY               (9)
#define SENSOR_TYPE_LINEAR_ACCELERATION   (10)
#define SENSOR_TYPE_ROTATION_VECTOR       (11)
#define SENSOR_TYPE_RELATIVE_HUMIDITY     (12)
// ...
#define …
Run Code Online (Sandbox Code Playgroud)

c android sensor android-ndk

3
推荐指数
1
解决办法
150
查看次数

Android加速度计毫秒还是微秒?

所以我使用HTC EVO获得加速度计数据.我得到这样的价值观.

967454610000 967534902000 967613576000 967692434000

这些值之间的差异大约是80,000,000.文档说:"该值必须是SENSOR_DELAY_NORMAL,SENSOR_DELAY_UI,SENSOR_DELAY_GAME或SENSOR_DELAY_FASTEST之一.或者,事件之间所需的延迟,以微秒为单位."

所以我使用的是SENSOR_DELAY_UI,我认为时间是微秒.这没有意义,因为这意味着每个时间间隔大约是80秒.如果它们以纳秒为单位意味着时间间隔约为0.08秒或每秒捕获12个数据,那将更有意义.但那会与文件相矛盾.有谁知道时间间隔是多少?

非常感谢!

java android sensor accelerometer android-sensors

2
推荐指数
1
解决办法
1732
查看次数

连续螺纹监控硬件接近传感器

我将如何实现在整个应用程序中运行的线程.我看过服务,但我很确定这不是我想要的.即使应用程序关闭,我也不希望线程不断检查.我只想要一个线程应用程序中(即使我的活动之间切换)的后台运行不间断的检查,看看用户是否提出的电话给他/她的耳朵.如果用户那么它将执行一个动作.有这样的事情的例子吗?

multithreading android sensor background-process

2
推荐指数
1
解决办法
1385
查看次数