Hiện tại, SENSOR_ORIENTATION không được chấp nhận, thực tiễn tốt nhất để có được tiêu đề la bàn là gì? Cách cũ quá đơn giản.Làm cách nào để đọc la bàn trên Android?
7
A
Trả lời
5
SensorManager.getOrientation(float[] R, float[] values) là cuộc gọi API chuẩn để sử dụng kể từ mức API 3.
8
Sau đây là một ví dụ cơ bản mà lấy tiêu đề la bàn và hiển thị nó trong một TextView. Nó làm như vậy bằng cách thực hiện giao diện SensorEventListener. Bạn có thể thay đổi tốc độ các sự kiện được gửi đến hệ thống bằng cách thay đổi hằng số trong dòng mã sau (ví dụ: "mSensorManager.registerListener (this, mCompass, SensorManager.SENSOR_DELAY_NORMAL);") (xem sự kiện OnResume()); tuy nhiên, cài đặt chỉ là gợi ý cho hệ thống. Ví dụ này cũng sử dụng các phương thức onReuse() và onPause() để bảo toàn tuổi thọ pin bằng cách đăng ký và hủy đăng ký Trình nghe khi không sử dụng. Hi vọng điêu nay co ich.
package edu.uw.android.thorm.wayfinder;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class CSensorActivity extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mCompass;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutsensor);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mCompass = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
mTextView = (TextView) findViewById(R.id.tvSensor);
}
// The following method is required by the SensorEventListener interface;
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
// The following method is required by the SensorEventListener interface;
// Hook this event to process updates;
public void onSensorChanged(SensorEvent event) {
float azimuth = Math.round(event.values[0]);
// The other values provided are:
// float pitch = event.values[1];
// float roll = event.values[2];
mTextView.setText("Azimuth: " + Float.toString(azimuth));
}
@Override
protected void onPause() {
// Unregister the listener on the onPause() event to preserve battery life;
super.onPause();
mSensorManager.unregisterListener(this);
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mCompass, SensorManager.SENSOR_DELAY_NORMAL);
}
}
Sau đây là các tập tin XML liên quan:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tvSensor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
Các vấn đề liên quan
- 1. La bàn trong Android
- 2. Ví dụ la bàn trên Android
- 3. Cách tạo la bàn chính xác trên android
- 4. Cách nhận hướng la bàn
- 5. Thuật toán tiếng ồn la bàn Android
- 6. Làm cách nào để truy cập la bàn trong iOS?
- 7. Android: la bàn + khoảng cách trong danh sách xem
- 8. Làm thế nào để cài đặt la bàn trong mac?
- 9. Cách hiển thị hướng gió trên la bàn
- 10. Cách lấy hướng la bàn từ góc phương vị trên Android
- 11. làm cách nào tôi có thể hiển thị la bàn/tiêu đề trên bản đồ mapkit
- 12. Bản đồ Android v2 xoay bản đồXem với la bàn
- 13. Hướng dẫn la bàn đến đích GPS
- 14. Sass, La bàn và JavaScript
- 15. Làm cách nào để hạ cấp xuống phiên bản la bàn cũ bằng cài đặt gem?
- 16. Làm cách nào để đọc đầu vào bàn phím trên Winform?
- 17. Tìm kiếm hoặc la bàn Hibernate
- 18. La bàn nhiều chuyển đổi css
- 19. Cú pháp dấu ba chấm la bàn
- 20. iOS: Tạo một la bàn 3D
- 21. Làm thế nào để kết hợp la bàn với phước lành?
- 22. iphone la bàn nghiêng bồi thường
- 23. Làm thế nào để cấu hình Ruby để sử dụng la bàn cho Sench-touch trên Windows
- 24. Di chuyển la bàn bản đồ google
- 25. Làm thế nào để nhập tệp scss trong la bàn chỉ khi nó tồn tại?
- 26. Làm thế nào để sử dụng bộ lọc La bàn mixin?
- 27. Làm cách nào để hiển thị bàn phím số trên EditText trong Android?
- 28. Làm cách nào để xóa tiêu điểm và xóa bàn phím trên Android?
- 29. Làm cách nào để loại bỏ bàn phím trên UIWebView?
- 30. Cách bắt đầu với La bàn/Sass trên máy Mac - Lỗi CSS không hợp lệ?
Yeah, tôi phát hiện ra rằng trong tài liệu. Hai câu hỏi nữa: bạn khởi tạo R và các giá trị thành gì? Ngoài ra, có cách nào để nhận thông báo hay toàn bộ mô hình làm việc không được chấp nhận? –
OK, tìm thấy một ví dụ tốt trong cơ sở nguồn. Tôi sẽ không sao chép nó ở đây, nhưng nếu bạn duyệt kho git cho Android, hãy xem phần cuối của phát triển/mẫu/Compass/src/com/example/android/la bàn/CompassActivity.java –
Thông báo/sự kiện là một cách không tốt để làm các cảm biến, đó là lý do tại sao nó được deprectated afaik. Mọi thay đổi khía cạnh nhỏ sẽ kích hoạt vô số sự kiện, về cơ bản nghẹn luồng giao diện người dùng với dữ liệu. – CodeFusionMobile