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

Androidスマートフォンかタブレットかを判定する方法【サンプルコード付き】

この記事では、Androidアプリで使用中のデバイスが「Androidスマートフォン」か「Androidタブレット」かをプログラムで判定する方法を解説します。

判定の仕組み

デバイスの種類を判定するには、TelephonyManagerクラスのgetPhoneType()メソッドを利用します。このメソッドはデバイスが持つ電話機能の種類を返却し、結果がTelephonyManager.PHONE_TYPE_NONE(電話機能なし)であればタブレット、それ以外であればスマートフォンであると判断できます。

実装手順

ステップ1:新規プロジェクトの作成

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

ステップ2:レイアウトファイルの編集

res/layout/activity_main.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="Detect device is Android phone or Android tablet"
        android:textAlignment="center"
        android:textSize="24sp"
        android:textStyle="bold" />
</RelativeLayout>

ステップ3:MainActivity.java の編集

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

import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.Toast;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TelephonyManager manager = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
        if (Objects.requireNonNull(manager).getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {
            Toast.makeText(MainActivity.this, "Detected... You're using a Tablet", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(MainActivity.this, "Detected... You're using a Mobile Phone", Toast.LENGTH_SHORT).show();
        }
    }
}

このコードでは、まずgetSystemService()によってTelephonyManagerのインスタンスを取得し、その後getPhoneType()の戻り値をチェックしています。戻り値がPHONE_TYPE_NONEの場合はToastで「タブレットを使用しています」と表示し、それ以外の場合は「スマートフォンを使用しています」と表示する仕組みです。

ステップ4:AndroidManifest.xml の編集

androidManifest.xml に以下のコードを記述します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <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" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリの実行と動作確認

それでは、アプリを実行してみましょう。実際のAndroid端末をパソコンに接続した状態で、Android Studioからプロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。実行対象のデバイスとして自分のモバイルデバイスを選択すると、端末に以下のような画面が表示されます。

Androidスマートフォンかタブレットかを判定する方法【サンプルコード付き】

  1. Androidスマホをリモート操作する方法|PC・別端末から遠隔制御できるアプリ15選

    Androidは、ユーザーフレンドリーでカスタマイズ性が高く、多彩な機能を備えていることから、世界中で高い人気を誇っています。そんなAndroidスマホの優れた機能のひとつが、PCや別のAndroid端末からリモート操作できるという点です。この機能には実に多くのメリットがあります。 例えば、Androidスマホにトラブルが発生し、専門家のサポートが必要になった場面を想像してみてください。わざわざサービスセンターまで持ち込んだり、電話での指示を聞きながら苦戦したりする必要はありません。技術者にリモートアクセスを許可すれば、そのまま修理してもらうことができます。また、複数のモバイル端末を使い分け

  2. Androidスマホ・タブレットをテレビに接続する方法|HDMIケーブルとワイヤレス接続のやり方を解説

    最近のテレビはオンデマンド配信やストリーミングアプリに幅広く対応しており、スマホやタブレットの画面をミラーリングして大画面で視聴する機会は、以前ほど多くなくなりました。それでも、外出先で自分のアカウントにログインしていない場合、最新アプリに対応していない古いテレビを使っている場合、あるいはTikTokのようにスマホ向けのアプリでしか楽しめないコンテンツを見たい場合には、接続して表示するのが最適な解決策になります。Androidスマホやタブレットをテレビに接続する方法は、ワイヤレスと有線(ケーブル)の2通りあります。それぞれの手順を詳しく解説します。HDMIケーブルでAndroidをテレビに接続