我正在构建的应用程序使用接近传感器.在不同的手机中尝试它我发现接近传感器在不同的手机中有不同的(最小,最大)值(我的htc感觉有0覆盖,9有未覆盖,而xperia有0覆盖,1有未覆盖).所以问题是:我如何获得接近传感器的最小值?
我想构建一个简单的Web应用程序,可以判断用户是否触摸了手机(设备).不只是屏幕,而是所有设备.所以我弄清楚如何检查用户是否触摸屏幕而不是方向和运动传感器部分.所以我发现了这段代码:
if (window.DeviceOrientationEvent) {
var x = document.getElementById('1');
var y = document.getElementById('2');
var z = document.getElementById('3');
window.addEventListener('deviceorientation', function(eventData) {
// gamma is the left-to-right tilt in degrees
console.log(eventData.gamma);
x.innerHTML = eventData.gamma;
// beta is the front-to-back tilt in degrees
console.log(eventData.beta);
y.innerHTML = eventData.beta;
// alpha is the compass direction the device is facing in degrees
console.log(eventData.alpha);
z.innerHTML = eventData.alpha;
}, false);
}
Run Code Online (Sandbox Code Playgroud)
它向我展示了许多快速变化的数据!但当我把手机放在我的桌子上时,它会不断更改数据,就像我移动我的设备一样.那么如何检查用户是否移动了手机/设备?如果你可以帮我解决你的代码和解释,甚至可以向我展示一个我可以欣赏它的网站,我真的无法理解它!在一个完美的世界:
if(user.touchDevice){alert("YOU TOUCHED PHONE!!!");}
Run Code Online (Sandbox Code Playgroud)
非常感谢!抱歉我的英文:)
我正在尝试创建一个从数字罗盘中读取数据的应用程序.我尝试重用专业Android应用程序开发一书中的代码,但IDE显示了一个注释
不推荐使用SensorListener类型
我想这是因为本书中的代码是为早期的SDK版本编写的,所以我尝试使用SensorEventListener.
然后,当我试图注册听众
sensorManager.registerListener(sensorListener, SensorManager.SENSOR_ORIENTATION, SensorManager.SENSOR_DELAY_FASTEST);
Run Code Online (Sandbox Code Playgroud)
出现错误:
SensorManager类型中的方法registerListener(SensorListener,int,int)不适用于参数(SensorEventListener,int,int)
所以我试图将SensorEventListener强制转换为SensorListener,但该应用程序不起作用.
有谁知道如何在较新的SDK版本中使用传感器?
谢谢.
我正在使用传感器来平衡机器人,但SENSOR_DELAY_FASTEST
只提供10Hz的采样率,这根本不够快.有更快的采样方式吗?
有没有办法轮询传感器而不是等待SensorEvent
?
我是Android开发的新手,我想创建一个显示我的Android设备上的传感器列表的应用程序.
我试图找到这个,但没有成功.
你能帮我么.
以下是如何执行此操作的解决方案:
/////////////// List of Sensors //////////////////////////////
listeCapteurs = (ListView) findViewById(R.id.ListView01);
SensorManager sensorManager=
(SensorManager)getSystemService(Context.SENSOR_SERVICE);
List<Sensor> listSensor=
sensorManager.getSensorList(Sensor.TYPE_ALL);
List<String> listSensorType = new ArrayList<String>();
for(int i=0; i<listSensor.size(); i++)
{
listSensorType.add(listSensor.get(listSensor.size()-1-i).getName());
}
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试替换我的'Sensor.TYPE_ORIENTATION',因为它已被弃用.所以Android文档缺少大部分信息,关于如何做到这一点.虽然调试和陷在这里SO我想通了,如何计算azimuth
其曾经被OrientationSensor提供.我是这样做的:
float accelerometerVals[] = new float[3];
float magneticVals[] = new float[3];
float orientationSensorVals[] = new float[3];
float rotationMatrix[] = new float[16];
float orientation[] = new float[3];
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
System.arraycopy(event.values, 0, accelerometerVals, 0, 3);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
System.arraycopy(event.values, 0, magneticVals, 0, 3);
break;
case Sensor.TYPE_ORIENTATION:
System.arraycopy(event.values, 0, orientationSensorVals, 0, 3);
break;
default:
break;
}
if (null != magneticVals && null != accelerometerVals){
SensorManager.getRotationMatrix(rotationMatrix, null, accelerometerVals, magneticVals) …
Run Code Online (Sandbox Code Playgroud) 我正在阅读几篇文章和Apple关于Apple Watch
和WatchKit
开发的文档.它看起来像第三方应用程序对Apple Watch
像Strava
和Runtastic
需要你还随身携带iPhone
,同时做运动拍摄和显示数据(如描述App Store的应用程序),但我不觉得,如果内置的应用程序(Activity
和Workout
)将也需要它.iPhone
在跑步时看起来有点不舒服,能够在手表中看到你的心率,速度等......
关于由心率传感器测量的数据和集成在以下内容中的加速度计Apple Watch
:是否存在可供第三方开发人员使用的API?
如何通过手表处理这些传感器来测量数据:是否在测量时直接发送到配对iPhone
?它是暂时和本地持久的手表,直到它可以发送到iPhone
?是HealthKit
可用于WatchKit
应用程序来处理这些信息呢?
提前致谢
我正在尝试检测android设备的运动并从设备获取线性加速度值。我正在使用SensorEvent的时间戳,并将其与上次更新时间进行比较,以确定是否记录传感器值。但这没有任何作用。为什么不起作用?
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION) {
int value = (int) event.values[0];
if(actualTime - lastUpdate > 5000) {
Log.d(TAG, "" + value);
lastUpdate = actualTime;
}
Run Code Online (Sandbox Code Playgroud) 当我尝试在Android中使用加速度传感器时,它会导致高CPU使用率 - 即使我尝试通过代码停止传感器并停用它.
我只需要在我的应用程序中读取一次加速度传感器,但看起来FireMonkey没有响应并且无法停止传感器.
这是代码:
var
Sensor: TCustomSensor;
begin
{ attempt to get and activate the sensor manager }
FSensorManager := TSensorManager.Current;
FSensorManager.Activate;
{ attempt to get an orientation sensor }
FSensors := TSensorManager.Current.GetSensorsByCategory(TSensorCategory.Motion);
FSensor := nil;
for Sensor in FSensors do
if TCustomMotionSensor(Sensor).SensorType = TMotionSensorType.Accelerometer3D then
begin
FSensor := TCustomMotionSensor(Sensor);
Break;
end;
if not Assigned(FSensor) then
begin
Exit; { no orientation sensor is available }
end;
{ start the sensor if it is not started }
if not FSensor.Started …
Run Code Online (Sandbox Code Playgroud) 我有一个IR传感器,它将当前信息写入令牌,然后我在C#应用程序中解释.这一切都很好 - 没有问题,继承我的代码:
SetLabelText(tokens [1],label_sensorValue);
sensorreading = Int32.Parse(tokens[0]);
sensordistance = (mathfunctionhere);
Run Code Online (Sandbox Code Playgroud)
大.因此,IR传感器离物体越远,传感器读数越低(因为传感器反射和接收的光越少).
我的问题在于解释这个长度.我可以继续前进,当一个物体距离5英寸时让我们说"110"作为值,然后当物体距离6英寸时,将"70"作为值.现在我希望能够使用这些常量计算任何长度的对象的距离.
有任何想法吗?
我的应用程序需要在其后台服务中具有更新的亮度值(延迟10-15分钟或其他东西)(这不是商业应用程序)....
我知道如何使用SensorEventListener和SensorManager检索灯值,但是在API文档中明确说明如果你不需要它时取消注册监听器,它将在几个小时内耗尽你的电池.
现在我的问题是......我怎样才能使用侦听器和传感器管理器每10-15分钟检索一个亮度值?
我可以使用类似下面的东西,每隔10-15分钟运行一次这个任务吗?
private TimerTask lightSensorTimer = new TimerTask() {
@Override
public void run() {
if (sensorManager != null) {
Sensor lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
if (lightSensor != null) {
sensorManager.registerListener(sensorListener, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
while (newLightLevel == lightLevel) {
try {
**Thread.sleep(1000);**
} catch (InterruptedException e) {
Log.e(TAG, "Interrupted exception in lightsensor timer: " + e.getMessage());
}
}
PhoneEvents.this.lightLevel = PhoneEvents.this.newLightLevel;
sensorManager.unregisterListener(sensorListener, lightSensor);
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
sensoreventlistener除此之外什么都不做:
private SensorEventListener sensorListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
if …
Run Code Online (Sandbox Code Playgroud) 我知道如何从加速度计和磁场传感器获取方向矢量,但我不明白为什么需要来自磁场传感器的数据.有人能解释为什么吗?在相关的说明中,我是否需要在创建游戏时使用SENSOR_DELAY_GAME频率请求更新,或者可以在不显着影响响应性的情况下更频繁地更新(可能是磁场传感器)?