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

AndroidアプリでWi-Fiを有効にする方法|サンプルコード付きでわかりやすく解説

この記事では、Androidアプリからプログラムを使ってWi-Fiを有効(ON)にする方法を、実際のサンプルコードとともに段階的に解説します。Android Studioでのプロジェクト作成から、レイアウトの定義、Javaコードの実装、パーミッションの設定まで、初心者の方でも理解しやすいように丁寧に説明していきます。

ステップ1:Android Studioで新規プロジェクトを作成する

まずは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">
    <TextView
        android:id="@+id/text"
        android:textSize="30sp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

上記のコードでは、画面いっぱいに表示されるTextViewを配置しています。このTextViewをタップするとWi-Fiが有効になる仕組みを作ります。

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

続いて、「src/MainActivity.java」に以下のコードを記述します。

package com.example.myapplication;

import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);
        textView.setText("enable wifi");
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
                wifiManager.setWifiEnabled(true);
            }
        });
    }
}

ポイントとなるのは以下の部分です。

  • WifiManagerの取得: getSystemService(WIFI_SERVICE) を使って、システムのWi-Fi機能を操作するためのWifiManagerインスタンスを取得します。
  • Wi-Fiの有効化: setWifiEnabled(true) を呼び出すことで、Wi-FiをONに切り替えます。

ステップ4:AndroidManifest.xmlにパーミッションを追加する

Wi-Fiの状態を取得・変更するためには、マニフェストファイルへの権限宣言が必須です。「AndroidManifest.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.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <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>

ここでは以下の2つの権限を宣言しています。

  • ACCESS_WIFI_STATE: Wi-Fiの接続状態を参照するために必要な権限
  • CHANGE_WIFI_STATE: Wi-Fiの有効・無効を変更するために必要な権限

アプリを実行して動作を確認する

それでは、実際にアプリを起動して動作を確認してみましょう。実機のAndroidスマートフォンをPCにUSB接続していることを前提としています。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。デバイス選択画面で自分のスマートフォンを選択すると、端末にアプリがインストールされ、以下のような初期画面が表示されます。

AndroidアプリでWi-Fiを有効にする方法|サンプルコード付きでわかりやすく解説

画面上の「enable wifi」というテキストをタップすると、setWifiEnabled(true) が実行され、端末のWi-Fiが自動的に有効になります。通知バーやクイック設定パネルを開いて、Wi-FiアイコンがONになっていることを確認してみてください。

注意点:Android 10(API 29)以降での挙動について

setWifiEnabled() メソッドは、Android 10(APIレベル29)以降では非推奨(deprecated)となっており、通常のアプリから直接Wi-FiをON/OFFすることはできなくなりました。Android 10以降の端末に対応させる場合は、Settings.Panel.ACTION_WIFI を使ってWi-Fi設定パネルを表示し、ユーザー自身に切り替えてもらう方式が推奨されています。古いOSバージョン向けの学習用サンプルとして本記事のコードを活用しつつ、最新環境では適切な代替手段を採用するようにしましょう。

  1. 【Android】TextViewでテキストを両端揃え(ジャスティファイ)表示する方法

    概要 本記事では、AndroidアプリのTextViewに表示するテキストを両端揃え(ジャスティファイ)にする方法を、サンプルコードとともにわかりやすく解説します。 TextViewで両端揃えを実現するには、android:justificationMode=inter_wordを指定するだけです。この機能はAndroid 8.0(APIレベル26)以降で有効になるため、それ以前のOSバージョンでは無視される点に注意してください。 手順1:新規プロジェクトを作成する まず、Android Studioを起動し、メニューから「File」⇒「New Project」を選択します。必要な項目をす

  2. WiFi通話とは?Androidスマホで有効化する方法をわかりやすく解説

    携帯電話の電波が届かない場所や通信障害が発生したとき、「WiFi通話」が頼れる救世主になります。仕事でもプライベートでも、常に連絡が取れる状態を保ちたい人にとって、心強い代替手段となるでしょう。さらに、WiFi通話は通信費の節約にもつながります。特に海外滞在中は、高額なローミング料金や国際通話料を気にせずに済むのが大きなメリットです。WiFi通話には他にもさまざまな利点があります。その便利さを知れば、「今までどうやって過ごしていたのだろう」と思うほどかもしれません。WiFi通話とは?WiFi通話とは、名前の通りWiFiネットワークを利用して通話やSMSを送受信できる機能のことです。特別なアプリ