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

【Android開発】デバイスの電源(充電)接続状態を検出する方法を解説

はじめに

この記事では、Androidアプリでデバイスの電源(充電ケーブルなど)が接続されたことを検出する方法を、実際のコード例とともにわかりやすく解説します。充電状態に応じた処理を実装したい場合に役立つテクニックです。

実装手順

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

まず、Android Studioで新しいプロジェクトを作成します。File → New Project を選択し、必要な情報を入力してプロジェクトを生成してください。

ステップ2:レイアウトファイルの作成

次に、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を配置しています。

ステップ3:MainActivity.java の実装

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

package com.example.myapplication;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.BatteryManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import static android.os.BatteryManager.ACTION_CHARGING;
public class MainActivity extends AppCompatActivity {
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);
    }
    @Override
    protected void onStop() {
        super.onStop();
        MainActivity.this.unregisterReceiver(mMessageReceiver);
    }
    @Override
    protected void onResume() {
        super.onResume();
        MainActivity.this.registerReceiver(mMessageReceiver, new IntentFilter(Intent.ACTION_POWER_CONNECTED));
    }
    private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            textView.setText("Device power is connected");
        }
    };
}

コードのポイント解説

このコードの重要なポイントは、BroadcastReceiver を使用してシステムブロードキャストを受け取る仕組みです。

  • onResume() 内で registerReceiver() を呼び出し、ACTION_POWER_CONNECTED(電源接続イベント)を受信するリスナーを登録します。
  • onStop() 内で unregisterReceiver() を呼び出し、アクティビティが非表示になった際にリスナーを解除します。これによりメモリリークを防止できます。
  • 電源が接続されると、onReceive() が呼び出され、TextViewに「Device power is connected」というメッセージが表示されます。

アプリの実行方法

それでは、実際にアプリを実行してみましょう。実機のAndroidスマートフォンをPCに接続していることを前提としています。Android Studioからアプリを起動するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーのRun(実行)アイコンをクリックします。表示される選択肢から自分のモバイルデバイスを選択すると、スマートフォンの画面にアプリが起動します。

【Android開発】デバイスの電源(充電)接続状態を検出する方法を解説

この状態で充電ケーブルを接続すると、画面に「Device power is connected」と表示され、電源接続イベントが正しく検出されていることが確認できます。

まとめ

Androidでは、ACTION_POWER_CONNECTED ブロードキャストを受信することで、デバイスへの電源接続を簡単に検出できます。ライフサイクルに合わせてレシーバーの登録・解除を適切に行うことが、安定したアプリ開発の鍵となります。ぜひ本記事の手順を参考に、ご自身のアプリにも実装してみてください。

  1. Androidスマホでアプリの開発国(原産国)を確認する4つの方法【2022年版】

    インストール済みアプリの開発国(原産国)を知りたいと思ったことはありませんか?アプリの原産国を調べる方法は実はいくつもあります。この情報が重要になる理由はさまざまです。たとえば、国際的な政治的緊張の影響で、特定の国で開発された製品のインストールが制限されるケースも考えられます。また、何らかの理由で開発元に連絡を取りたい場合にも役立ちます。ここでは、アプリの開発国と開発者情報を簡単に調べる方法をご紹介します。 Androidデバイスでアプリの原産国を確認する方法(2022年) アプリの開発者の所属国や開発者情報を調べる方法は、主に以下の4つがあります。 今回はVLCアプリを例に挙げて、4つの方法

  2. 紛失したAndroidスマホを探す方法|Google「デバイスを探す」の使い方を徹底解説

    Androidスマートフォンをどこかに置き忘れて見つからない——そんな経験はありませんか?オフィスでも、自宅でも、ホテルの部屋でも、スマホが行方不明になると不安になりますよね。しかし、慌てる前に試せる追跡方法はいくつかあります。適切な手順を踏めば、パニックになる前に端末を取り戻せる可能性は十分にあります。 ほとんどのAndroidスマートフォンは、Googleが提供する「Find My Device(デバイスを探す)」を使って、遠隔から位置の特定やロックが可能です。この記事では、Androidスマホやタブレットで「デバイスを探す」を利用する方法、紛失時に端末を見つける手順、そしてどうしても見つ