KotlinでAndroidデバイスがタブレットかスマートフォンかを判定する方法
この記事では、Kotlinを使って、ユーザーが使用しているAndroidデバイスがタブレットなのかスマートフォン(携帯電話)なのかを判別する方法を解説します。
判定の仕組みはシンプルです。TelephonyManagerのphoneTypeを確認し、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:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:text="Tutorials Point" android:textAlignment="center" android:textColor="@android:color/holo_green_dark" android:textSize="32sp" android:textStyle="bold" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="150dp" android:text="デバイスがAndroidスマートフォンかタブレットかを判定" android:textAlignment="center" android:textColor="@android:color/black" android:textSize="24sp" android:textStyle="bold" /> </RelativeLayout>
手順3:MainActivity.kt の実装
src/MainActivity.kt に以下のコードを追加します。ここが判定処理の核心部分です。
import android.content.Context
import android.os.Bundle
import android.telephony.TelephonyManager
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
val manager =
applicationContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
if (Objects.requireNonNull(manager).phoneType == TelephonyManager.PHONE_TYPE_NONE) {
Toast.makeText(
this@MainActivity,
"検出結果:タブレットを使用しています",
Toast.LENGTH_SHORT
).show()
} else {
Toast.makeText(
this@MainActivity,
"検出結果:スマートフォンを使用しています",
Toast.LENGTH_SHORT
).show()
}
}
}ポイント:getSystemService(Context.TELEPHONY_SERVICE)でTelephonyManagerのインスタンスを取得し、phoneTypeがPHONE_TYPE_NONEの場合は通話機能を持たないデバイス、つまりタブレットと判定しています。Wi-Fi専用モデルのタブレットは電話回線を持たないため、この方法で判別可能です。
手順4:AndroidManifest.xml の設定
androidManifest.xml に以下のコードを追加します。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.q11"> <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)アイコンをクリックします。表示された選択肢から接続中のモバイルデバイスを選択すると、実機の画面にアプリが起動し、デバイスの種類に応じたトーストメッセージが表示されます。
- タブレットの場合:「検出結果:タブレットを使用しています」と表示される
- スマートフォンの場合:「検出結果:スマートフォンを使用しています」と表示される
このように、TelephonyManagerを活用することで、数行のコードで簡単にデバイスの種類を判別できます。レイアウトの切り替えや機能の出し分けなど、デバイスごとに異なる挙動を実装したい場合にぜひ活用してください。
-
Androidスマートフォンかタブレットかを判定する方法【サンプルコード付き】
この記事では、Androidアプリで使用中のデバイスが「Androidスマートフォン」か「Androidタブレット」かをプログラムで判定する方法を解説します。 判定の仕組み デバイスの種類を判定するには、TelephonyManagerクラスのgetPhoneType()メソッドを利用します。このメソッドはデバイスが持つ電話機能の種類を返却し、結果がTelephonyManager.PHONE_TYPE_NONE(電話機能なし)であればタブレット、それ以外であればスマートフォンであると判断できます。 実装手順 ステップ1:新規プロジェクトの作成 Android Studioで新しいプロジェクト
-
Androidスマホ・タブレットをテレビに接続する方法|HDMIケーブルとワイヤレス接続のやり方を解説
最近のテレビはオンデマンド配信やストリーミングアプリに幅広く対応しており、スマホやタブレットの画面をミラーリングして大画面で視聴する機会は、以前ほど多くなくなりました。それでも、外出先で自分のアカウントにログインしていない場合、最新アプリに対応していない古いテレビを使っている場合、あるいはTikTokのようにスマホ向けのアプリでしか楽しめないコンテンツを見たい場合には、接続して表示するのが最適な解決策になります。Androidスマホやタブレットをテレビに接続する方法は、ワイヤレスと有線(ケーブル)の2通りあります。それぞれの手順を詳しく解説します。HDMIケーブルでAndroidをテレビに接続