Android
 Computer >> コンピューター >  >> プログラミング >> Android

Androidデバイスに指紋センサーが搭載されているか確認する方法


Androidデバイスに指紋センサーが搭載されているか確認する方法

この記事では、Androidデバイスが指紋センサー(フィンガープリントセンサー)を搭載しているかどうかをプログラムで判定する方法を解説します。FingerprintManagerクラスが提供するisHardwareDetected()メソッドを利用すれば、指紋認証ハードウェアの有無を簡単に確認できます。

ステップ1:新しいプロジェクトを作成する

Android Studioを起動し、メニューから「File」⇒「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。

ステップ2:レイアウトファイル(activity_main.xml)を編集する

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>

上記のコードでは、指紋センサーの検出結果を画面に表示するためのTextViewを1つ配置しています。

ステップ3:MainActivity.javaを実装する

src/MainActivity.javaに以下のコードを追加します。

package com.example.myapplication;
import android.annotation.SuppressLint;
import android.app.usage.UsageEvents;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v4.view.MotionEventCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.util.LogPrinter;
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import java.util.logging.LogManager;
public class MainActivity extends AppCompatActivity {
TextView textView;
@SuppressLint({"RestrictedApi", "ClickableViewAccessibility"})
@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);
FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
actionEvent.setText(""+ fingerprintManager.isHardwareDetected());
}
}

ここでは、getSystemService(FINGERPRINT_SERVICE)でFingerprintManagerのインスタンスを取得し、isHardwareDetected()の戻り値をTextViewに表示しています。trueが返れば指紋センサー搭載、falseなら非搭載という判定結果です。

ステップ4:Manifest.xmlに権限を追加する

Manifest.xmlに以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.myapplication">
   <uses-permission android:name="android.permission.USE_FINGERPRINT" />
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

指紋センサーの情報へアクセスするには、USE_FINGERPRINTパーミッションの宣言が必須です。忘れずに追加しましょう。

アプリを実行して結果を確認する

それでは、アプリケーションを実行してみましょう。実際のAndroidスマートフォンをパソコンに接続していることを前提としています。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。実行デバイスとして接続したスマートフォンを選択すると、デバイス画面に結果が表示されます。

Androidデバイスに指紋センサーが搭載されているか確認する方法

指紋センサーを搭載したデバイスでは「true」、非搭載のデバイスでは「false」と表示されます。

まとめ

FingerprintManagerのisHardwareDetected()メソッドを使えば、わずか数行のコードで指紋センサーの有無を確認できます。指紋認証機能を備えたアプリを開発する際は、事前にこのチェックを行うことで、非対応デバイスでの予期しないクラッシュを防ぐことができます。なお、Android 9(APIレベル28)以降ではFingerprintManagerの代わりにBiometricPrompt APIの利用が推奨されている点にも注意してください。

  1. Androidスマートフォンが気圧(PRESSURE)センサーに対応しているか確認する方法

    本記事では、Androidデバイスが気圧センサーを搭載しているかどうかをプログラムで判定する方法を、実際のコード例とともにわかりやすく解説します。気圧センサーとは?気圧センサーは、大気圧を測定するセンサーで、高度の推定や天候予測アプリなどに活用されています。Androidでは Sensor.TYPE_PRESSURE として定義されており、SensorManager を使って簡単に利用可否をチェックできます。手順1:新規プロジェクトを作成するAndroid Studioを開き、「File」→「New Project」を選択して、必要な項目を入力し、新しいプロジェクトを作成します。手順2:レイア

  2. 【Android開発】スマホが湿度センサーに対応しているか確認する方法

    はじめに この記事では、Androidスマートフォンが湿度センサー(TYPE_RELATIVE_HUMIDITY)に対応しているかどうかを、アプリ側からプログラムで確認する方法を解説します。 Android端末には加速度センサーや照度センサーなどさまざまなセンサーが搭載されていますが、湿度センサーを備えている端末は限られています。そのため、センサーを利用した機能を実装する前に、まず対応状況をチェックしておくことが重要です。 ステップ1:新規プロジェクトを作成する Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項