![](/img/trans.png)
[英]Android Battery information, without registering broadcast receiver?
[英]Broadcast receiver not registering in Android
這是我的表現
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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="com.masud.remotecontrol.MyRemoteReceiver" >
<intent-filter android:priority="1000000000000000" >
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
</application>
我的接收者
static int n_click = 0;
@Override
public void onReceive(final 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();
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_HEADSETHOOK:
if (action == KeyEvent.ACTION_DOWN) {
n_click++;
Handler handler = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
if (n_click == 1) {
Log.e("Click==", "Single Click");
}
if (n_click == 2) {
Log.e("Click==", "Double Click");
}
n_click = 0;
}
};
if (n_click == 1) {
handler.postDelayed(r, 500);
}
}
break;
}
abortBroadcast();
}
我已經盡我最大的努力來注冊接收者,但是我還沒有獲得任何解決方案來注冊。 我已經嘗試了在stackoverflow中找到的所有解決方案,但是沒有人在工作。
以上所有代碼都可以。 我只是將此代碼添加到我的MainActivity中。
((AudioManager) getSystemService(AUDIO_SERVICE))
.registerMediaButtonEventReceiver(new ComponentName(this,
MyRemoteReceiver.class));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.