最近の更新

2014年8月29日金曜日

電源の状態変更をリアルタイムに取得する方法

【目的】
Androidで電源の状態変更をリアルタイムに取得します。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidSample46-003-BatteryActionChanged」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidsample46_003
プロジェクト名(Project Name) AndroidSample46-003-BatteryActionChanged
パッケージ名(Package Name) com.example.androidsample46_003
Build SDK API 8
Minimum Required SDK API 8



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidsample46_003"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.androidsample46_003.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順4】
1.「src/com/example/androidsample46_003/MainActivity.java」は以下の通り。
package com.example.androidsample46_003;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    protected void onResume() {
        super.onResume();

        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_BATTERY_CHANGED);
        registerReceiver(broadcastReceiver, filter);
    }

    @Override
    protected void onPause() {
        super.onPause();

        unregisterReceiver(broadcastReceiver);
    }

    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
                StringBuilder sb = new StringBuilder();

                boolean present = intent.getBooleanExtra(BatteryManager.EXTRA_PRESENT, false);
                if (present) {
                    sb.append("バッテリーが存在する?=YES");
                } else {
                    sb.append("バッテリーが存在する?=NO");
                }
                sb.append("\n");

                int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
                sb.append("最大バッテリーレベル=" + scale);
                sb.append("\n");

                int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
                sb.append("現在バッテリーレベル=" + level);
                sb.append("\n");

                String technology = intent.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY);
                sb.append("テクノロジ=" + technology);
                sb.append("\n");

                int temperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
                sb.append("バッテリー温度=" + temperature);
                sb.append("\n");

                int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
                sb.append("現在電圧=" + voltage);
                sb.append("\n\n");


                int health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1);
                sb.append("バッテリー状態=" + health);
                sb.append("\n");

                if (health == BatteryManager.BATTERY_HEALTH_DEAD) {
                    sb.append(" 死亡?=YES");
                } else {
                    sb.append(" 死亡?=NO");
                }
                sb.append("\n");

                if (health == BatteryManager.BATTERY_HEALTH_GOOD) {
                    sb.append(" 良い?=YES");
                } else {
                    sb.append(" 良い?=NO");
                }
                sb.append("\n");

                if (health == BatteryManager.BATTERY_HEALTH_OVERHEAT) {
                    sb.append(" オーバーヒート?=YES");
                } else {
                    sb.append(" オーバーヒート?=NO");
                }
                sb.append("\n");

                if (health == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE) {
                    sb.append(" 電圧オーバー?=YES");
                } else {
                    sb.append(" 電圧オーバー?=NO");
                }
                sb.append("\n");

                if (health == BatteryManager.BATTERY_HEALTH_UNKNOWN) {
                    sb.append(" 不明?=YES");
                } else {
                    sb.append(" 不明?=NO");
                }
                sb.append("\n");

                if (health == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE) {
                    sb.append(" 不明な失敗?=YES");
                } else {
                    sb.append(" 不明な失敗?=NO");
                }
                sb.append("\n\n");


                int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
                sb.append("バッテリーステータス=" + status);
                sb.append("\n");

                if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
                    sb.append(" 充電中?=YES");
                } else {
                    sb.append(" 充電中?=NO");
                }
                sb.append("\n");

                if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
                    sb.append(" 放電中?=YES");
                } else {
                    sb.append(" 放電中?=NO");
                }
                sb.append("\n");

                if (status == BatteryManager.BATTERY_STATUS_FULL) {
                    sb.append(" 電池100%?=YES");
                } else {
                    sb.append(" 電池100%?=NO");
                }
                sb.append("\n");

                if (status == BatteryManager.BATTERY_STATUS_UNKNOWN) {
                    sb.append(" 不明?=YES");
                } else {
                    sb.append(" 不明?=NO");
                }
                sb.append("\n\n");


                int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
                sb.append("接続=" + plugged);
                sb.append("\n");

                if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
                    sb.append(" USB接続?=YES");
                } else {
                    sb.append(" USB接続?=NO");
                }
                sb.append("\n");

                if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
                    sb.append(" 電源接続?=YES");
                } else {
                    sb.append(" 電源接続?=NO");
                }
                sb.append("\n");

                ((TextView) findViewById(R.id.text)).setText(sb);
            }
        }
    };

}
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。



【手順6】
1.以下の様に表示されれば成功です。

↓microUSBで接続した状態。




↓microUSBを抜いた状態。













































以上です。

電源の接続状態をリアルタイムに取得する方法

【目的】
Androidで電源の接続状態をリアルタイムに取得します。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidSample46-002-BatteryActionPower」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidsample46_002
プロジェクト名(Project Name) AndroidSample46-002-BatteryActionPower
パッケージ名(Package Name) com.example.androidsample46_002
Build SDK API 8
Minimum Required SDK API 8



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidsample46_002"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.androidsample46_002.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順4】
1.「src/com/example/androidsample46_002/MainActivity.java」は以下の通り。
package com.example.androidsample46_002;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;

import com.example.androidsample46_001.R;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((TextView) findViewById(R.id.text)).setText("初期状態");
    }

    @Override
    protected void onResume() {
        super.onResume();

        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_POWER_CONNECTED);
        filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
        registerReceiver(broadcastReceiver, filter);
    }

    @Override
    protected void onPause() {
        super.onPause();

        unregisterReceiver(broadcastReceiver);
    }

    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            StringBuilder sb = new StringBuilder();
            if (intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
                sb.append("接続されました。");
            } else if (intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED)) {
                sb.append("切断されました。");
            }
            ((TextView) findViewById(R.id.text)).setText(sb);
        }
    };
}
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。



【手順6】
1.以下の様に表示されれば成功です。



↓microUSBの充電を抜いた場合。



↓microUSBの充電を刺した場合。

























以上です。

2014年8月28日木曜日

バッテリーの状態を取得する方法

【目的】
Androidでバッテリーの状態を取得します。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidSample46-001-Battery」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidsample46_001
プロジェクト名(Project Name) AndroidSample46-001-Battery
パッケージ名(Package Name) com.example.androidsample46_001
Build SDK API 8
Minimum Required SDK API 8



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidsample46_001"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.androidsample46_001.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順4】
1.「src/com/example/androidsample46_001/MainActivity.java」は以下の通り。
package com.example.androidsample46_001;

import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        Intent batteryStatus = registerReceiver(null, intentFilter);
        StringBuilder sb = new StringBuilder();

        boolean present = batteryStatus.getBooleanExtra(BatteryManager.EXTRA_PRESENT, false);
        if (present) {
            sb.append("バッテリーが存在する?=YES");
        } else {
            sb.append("バッテリーが存在する?=NO");
        }
        sb.append("\n");

        int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
        sb.append("最大バッテリーレベル=" + scale);
        sb.append("\n");

        int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
        sb.append("現在バッテリーレベル=" + level);
        sb.append("\n");

        String technology = batteryStatus.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY);
        sb.append("テクノロジ=" + technology);
        sb.append("\n");

        int temperature = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
        sb.append("バッテリー温度=" + temperature);
        sb.append("\n");

        int voltage = batteryStatus.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
        sb.append("現在電圧=" + voltage);
        sb.append("\n\n");


        int health = batteryStatus.getIntExtra(BatteryManager.EXTRA_HEALTH, -1);
        sb.append("バッテリー状態=" + health);
        sb.append("\n");

        if (health == BatteryManager.BATTERY_HEALTH_DEAD) {
            sb.append(" 死亡?=YES");
        } else {
            sb.append(" 死亡?=NO");
        }
        sb.append("\n");

        if (health == BatteryManager.BATTERY_HEALTH_GOOD) {
            sb.append(" 良い?=YES");
        } else {
            sb.append(" 良い?=NO");
        }
        sb.append("\n");

        if (health == BatteryManager.BATTERY_HEALTH_OVERHEAT) {
            sb.append(" オーバーヒート?=YES");
        } else {
            sb.append(" オーバーヒート?=NO");
        }
        sb.append("\n");

        if (health == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE) {
            sb.append(" 電圧オーバー?=YES");
        } else {
            sb.append(" 電圧オーバー?=NO");
        }
        sb.append("\n");

        if (health == BatteryManager.BATTERY_HEALTH_UNKNOWN) {
            sb.append(" 不明?=YES");
        } else {
            sb.append(" 不明?=NO");
        }
        sb.append("\n");

        if (health == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE) {
            sb.append(" 不明な失敗?=YES");
        } else {
            sb.append(" 不明な失敗?=NO");
        }
        sb.append("\n\n");


        int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
        sb.append("バッテリーステータス=" + status);
        sb.append("\n");

        if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
            sb.append(" 充電中?=YES");
        } else {
            sb.append(" 充電中?=NO");
        }
        sb.append("\n");

        if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
            sb.append(" 放電中?=YES");
        } else {
            sb.append(" 放電中?=NO");
        }
        sb.append("\n");

        if (status == BatteryManager.BATTERY_STATUS_FULL) {
            sb.append(" 電池100%?=YES");
        } else {
            sb.append(" 電池100%?=NO");
        }
        sb.append("\n");

        if (status == BatteryManager.BATTERY_STATUS_UNKNOWN) {
            sb.append(" 不明?=YES");
        } else {
            sb.append(" 不明?=NO");
        }
        sb.append("\n\n");


        int plugged = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
        sb.append("接続=" + plugged);
        sb.append("\n");

        if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
            sb.append(" USB接続?=YES");
        } else {
            sb.append(" USB接続?=NO");
        }
        sb.append("\n");

        if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
            sb.append(" 電源接続?=YES");
        } else {
            sb.append(" 電源接続?=NO");
        }
        sb.append("\n");

        ((TextView) findViewById(R.id.text)).setText(sb);
    }
}
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。



【手順6】
1.以下の様に表示されれば成功です。













































以上です。

2014年8月27日水曜日

Android Wearアプリをインストールするスマホアプリの作成方法

【目的】
Android Wearアプリをインストールするスマホアプリを作成します。
※以下の手順は、ADT23.0.2ではAndroid Wearに対応していない為の、暫定手順です。



【準備】
1.「Android Wearでウォッチフェイスを作成する方法」の手順で、Android Wearアプリを作成しておきます。
2.1.で作成したアプリを『watchface.apk』という名前で署名付きapkでパッケージしておきます。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidWearSample16-001-WatchFacePhone」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidwearsample16_001
プロジェクト名(Project Name) AndroidWearSample16-001-WatchFacePhone
パッケージ名(Package Name) com.example.androidwearsample16_001
Build SDK API 19
Minimum Required SDK API 19

2.「Google Play services SDKをライブラリ参照する方法」の手順で、ライブラリを設定。



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidwearsample16_001"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-feature android:name="android.hardware.type.watch" />

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="ウォッチ"
        android:theme="@android:style/Theme.Holo.Light" >
        <meta-data
            android:name="com.google.android.wearable.beta.app"
            android:resource="@xml/wearable_app_desc" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.【準備】で作成した『watchface.apk』を「/res/raw」ディレクトリに配置。




【手順4】
1.「任意のファイルの作成方法」の手順で「res/xml/wearable_app_desc.xml」を作成。
2.「res/xml/wearable_app_desc.xml」は以下の通り。
<wearableApp package="com.example.androidwearsample16_001">
    <versionCode>1</versionCode>
    <versionName>1.0</versionName>
    <rawPathResId>watchface</rawPathResId>
</wearableApp>
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。
※今回はスマホとPCをUSBで接続します。
 スマホアプリのインストール後にペアリングしているWear端末にAndroid Wearアプリが自動的にインストールされます。




【手順6】
1.まずは、現在表示されている時計画面を長押して、ウォッチフェイスの選択モードにします。
※Sumsung Gear Live(Android Wear)で試しています。




2.左右にスワイプさせると上記で作成・インストールしたウォッチフェイスがあるので、選択。




3.以下の様に表示されれば成功です。




以上です。

2014年8月26日火曜日

Android Wearでウォッチフェイスを作成する方法

【目的】
Android Wearでウォッチフェイスを作成します。
※ウォッチフェイスとは時計デバイスで表示されるメインの時計画面です。



【準備】
1.「Extrasライブラリ(Android Support Library v20等)のアップデート」の手順で、「Android Support Library」をv20に更新しておきます。
2.「wearable 1.0.0のライブラリプロジェクトの作成方法」の手順で、「wearable 1.0.0」のライブラリプロジェクトを作成しておきます。
※ADT23.0.2ではAndroid Wearに対応していない為の、暫定処置です。

※実機でデバッグする場合には以下を実行しておきます。
Sumsung Gear LiveのADBドライバのインストール方法」の手順で、ADBドライバをインストールしておきます。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidWearSample16-001-WatchFace」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidwearsample16_001
プロジェクト名(Project Name) AndroidWearSample16-001-WatchFace
パッケージ名(Package Name) com.example.androidwearsample16_001
Build SDK API 20
Minimum Required SDK API 20

2.「wearable 1.0.0プロジェクトをライブラリに指定する方法」の手順で、wearable 1.0.0をライブラリ設定しておきます。
3.「android-support-v13.jarをライブラリに設定する方法」の手順で、android-support-v13.jarをライブラリ設定しておきます。



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidwearsample16_001"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-feature android:name="android.hardware.type.watch" />

    <uses-sdk
        android:minSdkVersion="20"
        android:targetSdkVersion="20" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:theme="@android:style/Theme.DeviceDefault.Light" >
        <activity
            android:name="com.example.androidwearsample16_001.MainActivity"
            android:allowEmbedded="true"
            android:label="サンプル時計" >
            <meta-data
                android:name="com.google.android.clockwork.home.preview"
                android:resource="@drawable/ic_launcher" />

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.google.android.clockwork.home.category.HOME_BACKGROUND" />
            </intent-filter>
        </activity>
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/time"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical|center_horizontal"
        android:textSize="50sp" />

</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順4】
1.「src/com/example/androidwearsample16_001/MainActivity.java」は以下の通り。
package com.example.androidwearsample16_001;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    private final static IntentFilter INTENT_FILTER;
    private TextView textViewTime;

    static {
        INTENT_FILTER = new IntentFilter();
        INTENT_FILTER.addAction(Intent.ACTION_TIME_TICK);
        INTENT_FILTER.addAction(Intent.ACTION_TIMEZONE_CHANGED);
        INTENT_FILTER.addAction(Intent.ACTION_TIME_CHANGED);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textViewTime = (TextView) findViewById(R.id.time);
        setTextView();
        registerReceiver(timeReceiver, INTENT_FILTER);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(timeReceiver);
    }

    private void setTextView() {
        this.textViewTime.setText(new SimpleDateFormat("HH:mm", Locale.JAPANESE).format(Calendar.getInstance().getTime()));
    }

    private BroadcastReceiver timeReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            setTextView();
        }
    };
}
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。
※Android Wearの実機で動かす場合は、実機とPCをUSBで接続する。
※以下の様にインストールのみ実施されます。




【手順6】
1.まずは、現在表示されている時計画面を長押して、ウォッチフェイスの選択モードにします。
※Sumsung Gear Live(Android Wear)で試しています。




2.左右にスワイプさせると上記で作成・インストールしたウォッチフェイスがあるので、選択。





3.以下の様に表示されれば成功です。


























以上です。

2014年8月16日土曜日

AdMobでインタースティシャル広告を表示する方法(Google Play Services版)

【目的】
AndroidでAdMobでインタースティシャル広告を表示します。
※Google Play Servicesのライブラリを使用して動かす版です。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidSample45-003-AdMobInterstitialByGooglePlay」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidsample45_003
プロジェクト名(Project Name) AndroidSample45-003-AdMobInterstitialByGooglePlay
パッケージ名(Package Name) com.example.androidsample45_003
Build SDK API 13
Minimum Required SDK API 8
2.「Google Play services SDKをライブラリ参照する方法」の手順で、ライブラリを設定。



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidsample45_003"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="13" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.androidsample45_003.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClickButtonAdLoad"
        android:text="広告読込" />

    <TextView
        android:id="@+id/textViewAdStatus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="初期状態" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClickButtonAdDisplay"
        android:text="広告表示" />

</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順4】
1.「src/com/example/androidsample45_003/MainActivity.java」は以下の通り。
package com.example.androidsample45_003;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;

public class MainActivity extends Activity {
    private InterstitialAd interstitial;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        interstitial = new InterstitialAd(this);
        interstitial.setAdUnitId("【AdMobの広告ユニットID】");
        interstitial.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {
                displayMessage("広告が読み込まれました。");
            }

            public void onAdFailedToLoad(int errorCode) {
                switch (errorCode) {
                case AdRequest.ERROR_CODE_INTERNAL_ERROR:
                    displayMessage("Internal error");
                    break;
                case AdRequest.ERROR_CODE_INVALID_REQUEST:
                    displayMessage("Invalid request");
                    break;
                case AdRequest.ERROR_CODE_NETWORK_ERROR:
                    displayMessage("Network Error");
                    break;
                case AdRequest.ERROR_CODE_NO_FILL:
                    displayMessage("No fill");
                    break;
                }
            }

            public void onAdLeftApplication() {
                Toast.makeText(MainActivity.this, "他のアプリが開かれました。", Toast.LENGTH_SHORT).show();
            }

            public void onAdOpened() {
                Toast.makeText(MainActivity.this, "広告が開かれました。", Toast.LENGTH_SHORT).show();
            }

            public void onAdClosed() {
                Toast.makeText(MainActivity.this, "広告が閉じられました。", Toast.LENGTH_SHORT).show();
            }
        });
    }

    public void onClickButtonAdLoad(View view) {
        AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                                                     .addTestDevice("【必要に応じてデバイスID】")
                                                     .build();
        interstitial.loadAd(adRequest);
    }

    public void onClickButtonAdDisplay(View view) {
        if (interstitial.isLoaded()) {
            interstitial.show();
            displayMessage("広告を表示しました。");
        } else {
            displayMessage("広告がまだ読み込まれていません。");
        }
    }

    private void displayMessage(String message) {
        ((TextView) findViewById(R.id.textViewAdStatus)).setText(message);
    }
}
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。



【手順6】
1.以下の様に表示されれば成功です。























以上です。

2014年8月12日火曜日

AdMobでXMLレイアウトを指定し広告を表示する方法(Google Play Services版)

【目的】
AndroidでAdMobでXMLレイアウトを指定し、広告を表示します。
※Google Play Servicesのライブラリを使用して動かす版です。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidSample45-001-AdMobByGooglePlay」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidsample45_001
プロジェクト名(Project Name) AndroidSample45-001-AdMobByGooglePlay
パッケージ名(Package Name) com.example.androidsample45_001
Build SDK API 13
Minimum Required SDK API 8
2.「Google Play services SDKをライブラリ参照する方法」の手順で、ライブラリを設定。



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidsample45_001"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="13" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.androidsample45_001.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        ads:adSize="BANNER"
        ads:adUnitId="【AdMobの広告ユニットID】" />

</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順4】
1.「src/com/example/androidsample45_001/MainActivity.java」は以下の通り。
package com.example.androidsample45_001;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;

public class MainActivity extends Activity {
    private AdView adView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        adView = new AdView(this);
        adView.setAdUnitId("【AdMobの広告ユニットID】");
        adView.setAdSize(AdSize.BANNER);

        LinearLayout layout = (LinearLayout) findViewById(R.id.activity_main_root);
        layout.addView(adView);

        AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                                                     .addTestDevice("【必要に応じてデバイスID】")
                                                     .build();
        adView.loadAd(adRequest);
    }

    @Override
    public void onPause() {
        adView.pause();
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        adView.resume();
    }

    @Override
    public void onDestroy() {
        adView.destroy();
        super.onDestroy();
    }
}
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。



【手順6】
1.以下の様に表示されれば成功です。













































以上です。

AdMobで広告を表示する方法(Google Play Services版)

【目的】
AndroidでAdMobで広告を表示します。
※Google Play Servicesのライブラリを使用して動かす版です。



【手順1】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidSample45-001-AdMobByGooglePlay」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 項目に設定する値
アプリケーション名(Application Name) com.example.androidsample45_001
プロジェクト名(Project Name) AndroidSample45-001-AdMobByGooglePlay
パッケージ名(Package Name) com.example.androidsample45_001
Build SDK API 13
Minimum Required SDK API 8
2.「Google Play services SDKをライブラリ参照する方法」の手順で、ライブラリを設定。



【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidsample45_001"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="13" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.androidsample45_001.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>

</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順4】
1.「src/com/example/androidsample45_001/MainActivity.java」は以下の通り。
package com.example.androidsample45_001;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;

public class MainActivity extends Activity {
    private AdView adView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        adView = new AdView(this);
        adView.setAdUnitId("【AdMobの広告ユニットID】");
        adView.setAdSize(AdSize.BANNER);

        LinearLayout layout = (LinearLayout) findViewById(R.id.activity_main_root);
        layout.addView(adView);

        AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                                                     .addTestDevice("【必要に応じてデバイスID】")
                                                     .build();
        adView.loadAd(adRequest);
    }

    @Override
    public void onPause() {
        adView.pause();
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        adView.resume();
    }

    @Override
    public void onDestroy() {
        adView.destroy();
        super.onDestroy();
    }
}
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。



【手順5】
1.「Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。



【手順6】
1.以下の様に表示されれば成功です。













































以上です。

関連記事