1. 发送进程或者服务:只需要发送事件,可以附带参数
1.1 定义事件名称:android.intent.action.ACTION_KEYBOARD_EVENT
1.2 在改进程/服务有需要发送该广播的地方
mContext.sendBroadcast(new Intent("android.intent.action.ACTION_KEYBOARD_EVENT"));
String KEYBOARD_EVENT = "android.intent.action.ACTION_KEYBOARD_EVENT";
Intent myIntent = new Intent(KEYBOARD_EVENT);
String DOWN;
DOWN = (true == down) ? "1" : "0";
myIntent.putExtra("KEYCODE", Integer.toString(KeyEvent.KEYCODE_SEARCH));
//第一个参数,KEYCODE是索引字,用于接收解析用
myIntent.putExtra("DOWN", DOWN); //第二个参数,后面可以增加其他参数,DOWN是索引字
mContext.sendBroadcast(myIntent);
即可。
2. 接受进程或者服务:负责接收并做相应想要做的事情
2.1 该类里面定义 广播事件描述
private static final String KEYBOARD_EVENT = "android.intent.action.ACTION_KEYBOARD_EVENT";
2.2 注册广播守候事件
在该类的构造函数或者onCreate函数里面执行下面注册过程,或者在有需要接收的时候才注册,反正就需要执行下面注册过程就行。
IntentFilter filter = new IntentFilter();
filter.addAction(KEYBOARD_EVENT);
Log.d(TAG, "addAction and register: " + KEYBOARD_EVENT);
this.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (KEYBOARD_EVENT.equals(intent.getAction())) {
Log.d(TAG, "I have receive: " + KEYBOARD_EVENT);
String KEYCODE = intent.getExtras().getString("KEYCODE");
//获取到当前是自己想要的广播后,通过索引字获取对应的值,如keycode
String DOWN = intent.getExtras().getString("DOWN"); //同上
Log.d(TAG, "I have receive : " + KEYBOARD_EVENT + "KEYCODE:" + KEYCODE + " isDown:" + DOWN);//使用这几个参数
} else
{
//NO NOTHING
}
}
}, filter);
2.3 该类包包含
import android.content.BroadcastReceiver;
import android.content.IntentFilter;
1.1 定义事件名称:android.intent.action.ACTION_KEYBOARD_EVENT
1.2 在改进程/服务有需要发送该广播的地方
String KEYBOARD_EVENT = "android.intent.action.ACTION_KEYBOARD_EVENT";
Intent myIntent = new Intent(KEYBOARD_EVENT);
String DOWN;
DOWN = (true == down) ? "1" : "0";
myIntent.putExtra("KEYCODE", Integer.toString(KeyEvent.KEYCODE_SEARCH));
//第一个参数,KEYCODE是索引字,用于接收解析用
myIntent.putExtra("DOWN", DOWN); //第二个参数,后面可以增加其他参数,DOWN是索引字
mContext.sendBroadcast(myIntent);
即可。
2. 接受进程或者服务:负责接收并做相应想要做的事情
2.1 该类里面定义 广播事件描述
private static final String KEYBOARD_EVENT = "android.intent.action.ACTION_KEYBOARD_EVENT";
2.2 注册广播守候事件
在该类的构造函数或者onCreate函数里面执行下面注册过程,或者在有需要接收的时候才注册,反正就需要执行下面注册过程就行。
IntentFilter filter = new IntentFilter();
filter.addAction(KEYBOARD_EVENT);
Log.d(TAG, "addAction and register: " + KEYBOARD_EVENT);
this.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (KEYBOARD_EVENT.equals(intent.getAction())) {
String KEYCODE = intent.getExtras().getString("KEYCODE");
//获取到当前是自己想要的广播后,通过索引字获取对应的值,如keycode
String DOWN = intent.getExtras().getString("DOWN"); //同上
Log.d(TAG, "I have receive : " + KEYBOARD_EVENT + "KEYCODE:" + KEYCODE + " isDown:" + DOWN);//使用这几个参数
} else
{
//NO NOTHING
}
}
}, filter);
2.3 该类包包含
import android.content.BroadcastReceiver;
import android.content.IntentFilter;