▼Androidメモ▼
ブロードキャストレシーバー


ブロードキャストレシーバーでインテントを受信するプログラムを作成する。
 


ソースコード
BroadcastReceiverEx.java
package net.npaka.broadcastreceiverex;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;

//ブロードキャストレシーバー
public class BroadcastReceiverEx extends Activity
implements View.OnClickListener {
private final static int WC=LinearLayout.LayoutParams.WRAP_CONTENT;

//アクティビティ起動時に呼ばれる
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);

//レイアウトの生成
LinearLayout layout=new LinearLayout(this);
layout.setBackgroundColor(Color.WHITE);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

//ボタンの生成
Button button=new Button(this);
button.setText("インテントのブロードキャスト");
button.setOnClickListener(this);
button.setLayoutParams(new LinearLayout.LayoutParams(WC,WC));
layout.addView(button);
}

//ボタンクリックイベントの処理
public void onClick(View v) {
//インテントのブロードキャスト
Intent intent=new Intent("net.npaka.broadcastreceiverex.VIEW");
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.putExtra("TEXT","ブロードキャストレシーバーのテストです");
sendBroadcast(intent);
}
}

TextReceiver.java
package net.npaka.broadcastreceiverex;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

//テキストレシーバー
public class TextReceiver extends BroadcastReceiver {
//インテントの受信
@Override
public void onReceive(Context context,Intent intent) {
//パラメータの取得
Bundle bundle=intent.getExtras();
String text=bundle.getString("TEXT");

//トーストの表示
toast(context,text);
}

//トーストの表示
private static void toast(Context context,String text) {
Toast toast=Toast.makeText(context,text,Toast.LENGTH_LONG);
toast.show();
}
}

AndroidManifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.npaka.broadcastreceiverex"
android:versionCode="1"
android:versionName="1.0" >

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

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

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

<receiver
android:name=".TextReceiver"
android:exported="false" >
<intent-filter>
<action android:name="net.npaka.broadcastreceiverex.VIEW" />
</intent-filter>
</receiver>
</application>

</manifest>


−戻る−