Napisałem usługę, która wykorzystuje BroadcastReceiver do przechwytywania jednego z przycisków multimedialnych ("przycisk odtwarzania" z zestawu słuchawkowego) i działa doskonale na Android 2.3.x (HTC Nexus One lub HTC Desire)Przycisk przechwytywania multimediów w systemie Android> = 4.0 (działa w trybie 2.3)
Gdy próbowałem uruchomić Androida 4.0.3 (Samsung Nexus S), nie działa (moja aplikacja nie otrzymuje zamiaru "android.intent.action.MEDIA_BUTTON" i " przycisk odtwarzania "zachowuje się jak zwykle: zatrzymuje/uruchamia muzykę).
Treść manifestu:
... <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name=".buttonreceiver.MediaButtonIntentReceiver" > <intent-filter android:priority="10000" > <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver> ...
Czy istnieje sposób, aby to działało na Androidzie 4.0.3
edit: mam spróbuj proponowane rozwiązanie, Dodałem działania i przebieg to, ale mój odbiornik nadal nie otrzymuje intencji. Co dziwniejsze, rejestrowanie odbiornika za pomocą kodu również nie działa:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about_and_activation_view);
Log.d("MR", "onCreate - " + getIntent().getAction());
mReceiver = new MediaButtonIntentReceiver();
registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_MEDIA_BUTTON));
}
Teraz jestem całkowicie zdezorientowany.
Należy również zauważyć, że zamiar priorytetem musi być większa niż -1000 i mniej niż 1000. – William