Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách kiểm tra thiết bị Android hỗ trợ cảm biến Game Rotation Vector

Giới thiệu

Ví dụ này minh họa cách kiểm tra hỗ trợ cảm biến Game Rotation Vector - vector quay cho game, không sử dụng từ tính (không có drift).

Các bước thực hiện

Bước 1: Tạo dự án mới

Mở Android Studio, chọn File → New Project.

Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <TextView
        android:id="@+id/actionEvent"
        android:textSize="40sp"
        android:layout_marginTop="30dp"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</LinearLayout>

Bước 3: Viết logic (src/MainActivity.java)

package com.example.myapplication;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private SensorManager sensorManager;

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView actionEvent = findViewById(R.id.actionEvent);
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

        // TYPE_GAME_ROTATION_VECTOR không dùng magnetometer, phù hợp game
        if (sensorManager.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR) != null) {
            actionEvent.setText("Hỗ trợ Game Rotation Vector");
        } else {
            actionEvent.setText("Không hỗ trợ Game Rotation Vector");
        }
    }
}

TYPE_GAME_ROTATION_VECTOR tương tự TYPE_ROTATION_VECTOR nhưng không dùng magnetometer, tránh bị nhiễu từ trường, lý tưởng cho game VR/AR.

Chạy ứng dụng

Chạy trên thiết bị thật. Kết quả cho biết hỗ trợ hay không.

Cách kiểm tra thiết bị Android hỗ trợ cảm biến Game Rotation Vector