Hầu hết các thiết bị Android đều có cảm biến tích hợp để đo chuyển động, định hướng và điều kiện môi trường khác nhau. Nền tảng Android hỗ trợ ba loại cảm biến rộng.
Cảm biến chuyển động
Cảm biến môi trường
Cảm biến vị trí
![]() |
| Học lập trình Android cơ bản |
Link đăng ký : Học lập trình Android cơ bản.
Android cung cấp các lớp SensorManager và Sensor để sử dụng các cảm biến trong ứng dụng của chúng tôi. Để sử dụng cảm biến, điều đầu tiên bạn cần làm là khởi tạo đối tượng của lớp SensorManager. Nó có thể đạt được như sau.
Điều tiếp theo bạn cần làm là khởi tạo đối tượng của lớp Sensor bằng cách gọi phương thức getDefaultSensor () của lớp SensorManager. Cú pháp của nó được đưa ra dưới đây
Khi cảm biến đó được khai báo, bạn cần phải đăng ký trình nghe của nó và ghi đè hai phương thức được onAccuracyChanged và onSensorChanged. Cú pháp của nó như sau:
Để thử nghiệm với ví dụ này, bạn có thể chạy nó trên một thiết bị thực tế hoặc trong một trình giả lập.
Sau đây là nội dung của MainActivity.java đã sửa đổi .
Android cung cấp các lớp SensorManager và Sensor để sử dụng các cảm biến trong ứng dụng của chúng tôi. Để sử dụng cảm biến, điều đầu tiên bạn cần làm là khởi tạo đối tượng của lớp SensorManager. Nó có thể đạt được như sau.
SensorManager sMgr;
sMgr = (SensorManager)this.getSystemService(SENSOR_SERVICE);
Sensor light;
light = sMgr.getDefaultSensor(Sensor.TYPE_LIGHT);
sMgr.registerListener(this, light,SensorManager.SENSOR_DELAY_NORMAL);
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
}
Bắt danh sách các cảm biến được hỗ trợ
Bạn có thể nhận danh sách các cảm biến được thiết bị của bạn hỗ trợ bằng cách gọi phương thức getSensorList, phương thức này sẽ trả về danh sách các cảm biến có chứa tên và số phiên bản của chúng và nhiều thông tin khác. Sau đó, bạn có thể lặp lại danh sách để nhận thông tin. Cú pháp của nó được đưa ra dưới đâysMgr = (SensorManager)this.getSystemService(SENSOR_SERVICE); List<Sensor> list = sMgr.getSensorList(Sensor.TYPE_ALL); for(Sensor sensor: list){ }Ngoài các phương thức này, còn có các phương thức khác do lớp SensorManager cung cấp để quản lý khung cảm biến. Những phương pháp này được liệt kê dưới đây
| Sr.No | Phương pháp & mô tả |
|---|---|
| 1 | getDefaultSensor (loại int) Phương pháp này nhận được cảm biến mặc định cho một loại nhất định. |
| 2 | getOrientation (float [] R, float [] giá trị) Phương thức này trả về một mô tả của clip chính hiện tại trên clipboard nhưng không phải là bản sao dữ liệu của nó. |
| 3 | getInclination (float [] I) Phương pháp này tính toán góc nghiêng từ tính theo radian từ ma trận độ nghiêng. |
| 4 | registerListener (Trình nghe của bộ cảm biến, bộ cảm biến int, tốc độ int) Phương pháp này đăng ký người nghe cho cảm biến |
| 5 | unregisterListener (Trình nghe SensorEventListener, Bộ cảm biến cảm biến) Phương pháp này unregisters một người nghe cho các cảm biến mà nó được đăng ký. |
| 6 | getOrientation (float [] R, float [] giá trị) Phương pháp này tính toán hướng của thiết bị dựa trên ma trận xoay. |
| 7 | getAltitude (float p0, float p) Phương pháp này tính toán Độ cao tính theo mét từ áp suất khí quyển và áp suất ở mực nước biển. |
Thí dụ
Đây là một ví dụ minh họa việc sử dụng lớp SensorManager. Nó tạo ra một ứng dụng cơ bản cho phép bạn xem danh sách các cảm biến trên thiết bị của bạn.Để thử nghiệm với ví dụ này, bạn có thể chạy nó trên một thiết bị thực tế hoặc trong một trình giả lập.
| Các bước | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng Android studio để tạo ứng dụng Android theo gói com.example.sairamkrishna.myapplication. |
| 2 | Sửa đổi tệp src / MainActivity.java để thêm mã cần thiết. |
| 3 | Sửa đổi res / layout / activity_main để thêm các thành phần XML tương ứng. |
| 4 | Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả. |
package com.example.sairamkrishna.myapplication; import android.app.Activity; import android.hardware.SensorManager; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import java.util.List; import android.hardware.Sensor; import android.hardware.SensorManager; public class MainActivity extends Activity { TextView tv1=null; private SensorManager mSensorManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1 = (TextView) findViewById(R.id.textView2); tv1.setVisibility(View.GONE); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); List<Sensor> mList= mSensorManager.getSensorList(Sensor.TYPE_ALL); for (int i = 1; i < mList.size(); i++) { tv1.setVisibility(View.VISIBLE); tv1.append("\n" + mList.get(i).getName() + "\n" + mList.get(i).getVendor() + "\n" + mList.get(i).getVersion()); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }Sau đây là nội dung sửa đổi của xml activity_main.xml .
Trong đoạn mã dưới đây abc cho biết về logo của tutorialspoint.com
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:transitionGroup="true"> <TextView android:text="Sensor " android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview" android:textSize="35dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point" android:id="@+id/textView" android:layout_below="@+id/textview" android:layout_centerHorizontal="true" android:textColor="#ff7aff24" android:textSize="35dp" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:theme="@style/Base.TextAppearance.AppCompat" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/textView2" android:layout_below="@+id/imageView" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout>Sau đây là nội dung của res / values / string.xml .
<resources> <string name="app_name">My Application</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>Sau đây là nội dung của tệp AndroidManifest.xml .
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>Hãy thử chạy ứng dụng của chúng tôi, chúng tôi vừa sửa đổi. Tôi cho rằng bạn đã tạo AVD của mình trong khi thiết lập môi trường.
Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Android studio cài đặt ứng dụng trên AVD của bạn và khởi động ứng dụng và nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, ứng dụng sẽ hiển thị cửa sổ Trình mô phỏng sau
Bây giờ nếu bạn sẽ nhìn vào màn hình thiết bị của mình, bạn sẽ thấy danh sách các cảm biến được thiết bị của bạn hỗ trợ cùng với tên và phiên bản cũng như thông tin khác của chúng.
Nếu bạn chạy ứng dụng này trên các thiết bị khác nhau, đầu ra sẽ khác vì đầu ra phụ thuộc vào số lượng cảm biến được thiết bị của bạn hỗ trợ.
Bây giờ nếu bạn sẽ nhìn vào màn hình thiết bị của mình, bạn sẽ thấy danh sách các cảm biến được thiết bị của bạn hỗ trợ cùng với tên và phiên bản cũng như thông tin khác của chúng.
Nếu bạn chạy ứng dụng này trên các thiết bị khác nhau, đầu ra sẽ khác vì đầu ra phụ thuộc vào số lượng cảm biến được thiết bị của bạn hỗ trợ.

Không có nhận xét nào:
Đăng nhận xét