バッテリー残量ウィジェットの作り方 (1/4)

~ 普通のウィジェットを作る ~

前へ   1  2  3  4   次へ
ウィジェットと言うのは、ホーム画面に常駐するアプリです。機能制限が多いですが、面白いアプリが作れます。ここでは、バッテリー残量を取得して、それを表示するウィジェットを作ります。

1.Androidウィジェットを作る手順

まずは、普通のウィジェットを作ります。ウィジェットを作るには、それなりに手間がかかります。

(1)プロジェクトを作ります。
(2)AppWidgetProviderを継承したクラスを作ります。
(3)ウィジェットの設定ファイルを作ります。
(4)マニフェストを設定します。

それでは1つ1つ作って行きましょう。

2.プロジェクトを作る

今回は、こんなプロジェクトにしておきます。

プロジェクト名SampleBatteryWidget
ターゲットAndroid 1.5
アプリケーション名バッテリー残量ウィジェット
パッケージ名sample.android.battery.widget
Activityチェックなし
SDKバージョン3

3.AppWidgetProviderを継承したクラスを作る

ウィジェットは、AppWidgetProviderを継承して作ります。ウィジェット起動時に、この中のonUpdateメソッドが実行されます。

[ SampleBatteryWidget ]
    [ src ]
        [ sample.android.battery.widget ]
            SampleBatteryWidget.java
    [ gen ]
    [ Android 1.5 ]
    [ assets ]
    [ res ]
    AndroidManifest.xml
    default.properties
    proguard.cfg

SampleBatteryWidget.java

package sample.android.battery.widget;

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;

public class SampleBatteryWidget extends AppWidgetProvider {
    @Override
    public void onUpdate(Context c, AppWidgetManager awm, int[] awi) {
    }
}

onUpdateメソッドの中が、空なので、まだ何も起こりません。

4.ウィジェットの設定ファイルを作る

ウィジェットの設定ファイルを作って、ウィジェットの大きさや更新間隔を指定します。

[ SampleBatteryWidget ]
    [ src ]
    [ gen ]
    [ Android 1.5 ]
    [ assets ]
    [ res ]
        [ drawable ]
        [ layout ]
        [ values ]
        [ xml ]
            widget.xml
    AndroidManifest.xml
    default.properties
    proguard.cfg

widget.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:minWidth="72dip"
        android:minHeight="72dip"
        android:updatePeriodMillis="0"
        android:initialLayout="@layout/main" />

ウィジェットの大きさは、(74×整数-2)でないといけません。これは、ホーム画面がこの大きさに分割されているためです。また、更新間隔は、通常1800000ミリ秒以上の数字ですが、0を指定すると更新なしになります。バッテリー残量ウィジェットは、バッテリー残量変化のイベントで、画面を更新するので、ウィジェット標準の更新はなしです。

5.マニフェストを設定する

マニフェストで、インテントフィルターにAPPWIDGET_UPDATEをセットします。これは、onUpdateメソッドが実行されるようにするためのものです。また、ウィジェット設定ファイルの場所を指定します。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="sample.android.battery.widget"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">

		<receiver android:name="SampleBatteryWidget" android:label="SampleBatteryWidget">
			<intent-filter>
				<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
			</intent-filter>
			<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget01" />
		</receiver>

    </application>
    <uses-sdk android:minSdkVersion="3" />

</manifest> 

6.実行してみる

これで、とりあえずウィジェットはできました。うまく行っているか実行してみます。

バッテリー残量ウィジェットなし
バッテリー残量ウィジェット選択
バッテリー残量ウィジェットあり

よし!うまく行きました。このHelloWorldは、ウィジェットの設定ファイルで、初期レイアウトに「main.xml」を指定したことで表示されています。

次は、バッテリー残量を取得するための準備として、サービスを実装します。

前へ   1  2  3  4   次へ