Nếu người dùng quay qua điện thoại, tôi muốn phản ứng với điều đó bằng cách dừng đọc văn bản của tôi. Nó sẽ là một tính năng tuyệt vời cho ứng dụng của tôi, nhưng làm thế nào tôi có thể phát hiện chuyển động này? Tôi không thực sự quen thuộc với cảm biến chuyển động và tôi không thể tìm thấy người nghe chuyển động cụ thể này ở bất cứ đâu, chủ yếu chỉ là hướng màn hình. Cảm ơn đã giúp đỡ!Làm thế nào để phát hiện chuyển động doanh thu trong Android?
Trả lời
Hoạt động mẫu này thể hiện cảm biến trọng lực của thiết bị có thể được sử dụng để phát hiện khi thiết bị được bật lên. Trong phương thức onSensorChanged()
, cụm từ factor
xác định cách hoàn thành "lần lượt" phải. Phạm vi tiêu biểu có thể là 0,7 đến 0,95.
Hỗ trợ cảm biến trọng lực được thêm vào API Android 9. Không phải tất cả các thiết bị đều có cảm biến trọng lực.
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private static final String TAG = "Demo";
private SensorManager mSensorManager;
private Sensor mGravitySensor;
private boolean mFacingDown;
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// nothing
}
@Override
public void onSensorChanged(SensorEvent event) {
final float factor = 0.95F;
if (event.sensor == mGravitySensor) {
boolean nowDown = event.values[2] < -SensorManager.GRAVITY_EARTH * factor;
if (nowDown != mFacingDown) {
if (nowDown) {
Log.i(TAG, "DOWN");
} else {
Log.i(TAG, "UP");
}
mFacingDown = nowDown;
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mGravitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
if (mGravitySensor == null) {
Log.w(TAG, "Device has no gravity sensor");
}
}
@Override
protected void onResume() {
super.onResume();
if (mGravitySensor != null) {
mSensorManager.registerListener(this, mGravitySensor, SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
}
cảm ơn bạn! Tôi sẽ thử nó vào thứ hai khi tôi trở lại trường đại học, tôi đang làm ứng dụng của tôi như một bài tập ở đó. (sẽ không quên chấp nhận nó :) –
Bạn có thể giúp tôi làm thế nào tôi có thể sử dụng này (thử nghiệm nó, hoạt động tốt) trong một lớp học? Tôi muốn sử dụng nó trong nhiều hoạt động, vì vậy tôi nghĩ rằng tôi thực hiện tất cả điều này trong một lớp học công cộng, nhưng gặp khó khăn khi làm việc, ngay bây giờ tôi nhận được 0 errorst, chỉ cần ứng dụng sẽ không bắt đầu trên điện thoại của tôi: O –
thực sự là ứng dụng không bắt đầu là vì một lý do hoàn toàn khác, tôi chỉ cần xóa nó khỏi điện thoại của tôi và cài đặt lại nó. –
- 1. Làm thế nào tôi sẽ phát hiện cảm biến chuyển động trong bộ thu phát sóng?
- 2. Làm thế nào để phát hiện overscroll trong Android ListView?
- 3. Làm cách nào để phát hiện xem một MapView Android đã được quét hoặc thu nhỏ?
- 4. Làm thế nào để phát hiện va chạm giữa các đối tượng chuyển động nhanh
- 5. Phát hiện mẫu chuyển động trên thiết bị Android
- 6. Máy thu phát không hoạt động trong Android 6.0 Marshmallow
- 7. phát hiện chuyển động VLCj
- 8. Làm thế nào để phát hiện NSWindow Phóng to hoặc thu phóng sự kiện?
- 9. Phát hiện khi chuyển vùng bị tắt trong Android
- 10. Làm thế nào để phát hiện kết thúc chuỗi trong mảng byte để chuyển đổi chuỗi?
- 11. Bộ thu phát sóng động trong Fragment
- 12. Làm thế nào để phát hiện deadlocks trong Mysql/innodb?
- 13. Làm thế nào để phát hiện cuộn ngang trong jQuery?
- 14. Làm thế nào để phát hiện chữ thường trong Python?
- 15. Phát hiện pinch trong Android
- 16. Tôi làm cách nào để tự động phát hiện proxy?
- 17. Làm thế nào để phát hiện di chuyển đến một phần mới trong UICollectionView?
- 18. Làm thế nào để phát hiện tràn khi chuyển đổi chuỗi thành số nguyên trong java
- 19. Làm thế nào để phát hiện chuột di chuyển trong khi nút trái xuống?
- 20. Làm thế nào để phát hiện xem một listview đang cuộn lên hoặc xuống trong android?
- 21. Làm thế nào để phát hiện khả năng Tai nghe
- 22. iOS: Cách phát hiện chuyển động lắc?
- 23. iOS 7 uinavigationcontroller làm thế nào để phát hiện swipe?
- 24. Làm thế nào để tự động phát hiện các thực thể trong JPA 2.0
- 25. Làm thế nào để phát hiện người dùng không hoạt động trong Qt?
- 26. Làm thế nào để phát hiện iPhone/Android thức từ giấc ngủ với javascript
- 27. Làm thế nào để phát hiện nếu một đối tượng đã được thu thập rác trong Javascript?
- 28. Làm thế nào để phát hiện HTC Sense?
- 29. android - phát hiện rung
- 30. Làm thế nào để đối phó với việc loại bỏ quyền cho một máy thu phát sóng trong Android M?
Chỉ cần một ý nghĩ: nếu "đặt bộ mặt điện thoại xuống" là OK (như trái ngược với chỉ chuyển nó qua trên không trung), sau đó phát hiện một tối đột ngột của ánh sáng môi trường xung quanh có thể làm việc ([xem tại đây] (http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_LIGHT)) Không biết nếu có người nghe cho điều này. – TripeHound
sẽ kiểm tra sau (thứ hai) nếu tôi có thể sử dụng. tài liệu nói rằng cảm biến môi trường dễ sử dụng hơn nhiều, vì vậy tôi hy vọng :) –