我有一個帶有單個按鈕的耳機,並且想在按下按鈕時做一個簡單的Toast。在Android中使用BroadcastReceiver註冊耳機按鈕
現在我有以下代碼:
public class MediaButtonIntentReceiver extends BroadcastReceiver {
public MediaButtonIntentReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {
// do something
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
}
abortBroadcast();
}
}
而我的主要活動如下:
public class mainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
MediaButtonIntentReceiver r = new MediaButtonIntentReceiver();
registerReceiver(r, filter);
}
}
什麼也沒有發生,雖然當我雖然按下按鈕。
我敢肯定,我的權限/ XML在清單中有什麼問題。這裏的接收器XML至今:
<receiver android:name=".MediaButtonIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
....
和:
<uses-permission android:name="android.permission.BLUETOOTH" />
我在logcat中注意到,當我按下按鈕,我從 「BluetoothIntentReceiver」 得到一個錯誤說「onReceive()動作:android.intent.action.MEDIA_BUTTON」
我想改變那個按鈕上的FM廣播電臺,所以我可以這樣做嗎? – 2014-03-11 05:53:20