놀랍게도 Android 4.0 이상에서는 사용 가능한 소프트웨어 센서에서 LINEAR ACCELERATION 센서를 제거하고 일반 전화기에서는 거의 사용할 수없는 자이로 스코프 인 하드웨어 센서에 넣기로 결정했습니다. . 나는 왜 그들이 그것을했는지는 모르지만 저가의 2.3 휴대폰에서 테스트 한 소프트웨어를 전달했을 때 놀라움을 상상해보십시오. 그리고 2 개월 된 전화에서 선형 가속 센서을 인스턴스화 할 수 없습니다. 왜 그들은 그것을 했습니까?AcceleroMeter를 사용하여 Android에서 AcceleroMeter를 올바르게 계산하는 방법
내 피부를 저장하려면 휴대 전화에서 가속도계를 사용할 수 있는지 확인했습니다. this article을 기준으로 볼 때 가속도계의 데이터를 사용하여 선형 가속도를 계산할 수 있어야합니다. 내가 코드를 확인하고 사용할 수있는 선언이 변수를 참조하십시오.
public void onSensorChanged(SensorEvent event){
// In this example, alpha is calculated as t/(t + dT),
// where t is the low-pass filter's time-constant and
// dT is the event delivery rate.
final float alpha = 0.8;
float[] gravity=new float[]{0.0f,0.0f,0.0f}; //should it be here???
// Isolate the force of gravity with the low-pass filter.
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
// Remove the gravity contribution with the high-pass filter.
linear_acceleration[0] = event.values[0] - gravity[0];
linear_acceleration[1] = event.values[1] - gravity[1];
linear_acceleration[2] = event.values[2] - gravity[2];
}
첫 번째 실행에서 중력 어레이에는 무엇이 포함되어 있습니까? 같이 추가할까요
float[] gravity=new float[]{0.0f,0.0f,0.0f};
?
또는 중력 센서를 통해 사용할 수있는 실제 중력 데이터가 있어야합니까 (일반 장치에서는 사용할 수 없음)?
계산 결과에 선형 가속도 데이터가 있습니까? 들어오는 센서 데이터에서 숫자를 빼서 계산할 수 있습니까?
이다."장치에 자이로 스코프가 없으면 센서가 나타나지 않고 사용할 수 없습니다." – Jerry101
그리고 2.3 휴대 전화에서 사용할 수있는 센서를 제거하기로 결정한 이유는 무엇입니까? 따라서 그들은 4.0 가속도를 측정 할 수있는 2.3 휴대 전화보다 덜 전문적인 4.0 휴대 전화 (자이로가없는)의 절반을 고려합니다. 위대한 혁신 .... – Nestor
네, 악취가납니다. 앱의 uses-sdk'android : targetSdkVersion'을 9 (Android 2.3) 또는 13 (Android 3.2)으로 설정해보세요. 새로운 OS를 이전 버전과 호환 가능하게 만들 예정입니다. 실험 결과를 문서화하는 것이 좋습니다. – Jerry101