Мне удалось заставить мои кнопки гарнитуры распознаваться моим приложением при нажатии, но одна из кнопок должна вызывать метод, который в MyCustomActivity. Проблема заключается в том, что первый параметр onReceive — это контекст, который нельзя привести к действию, и использование внутреннего класса MyCustomActivity выигрывает. не работает в Android 4.1, если только он не является статическим (с той же проблемой невозможности доступа к методу MyCustomActivity.
Таким образом, единственный оставшийся мне вариант (для поддержки как 2.x, так и 4.1) - передать действие в качестве параметра RemoteControlReceiver< /а>.
Но как мне это сделать, когда единственный способ создать экземпляр - через:
private ComponentName mRemoteControlReceiver = new ComponentName(this, RemoteControlReceiver.class);
Который не принимает никаких дополнительных параметров?
Любая идея, как обойти это ограничение?
Примечание. Если я попытаюсь определить RemoteControlReceiver
как имеющий конструктор с параметром, я получу следующее исключение:
E/AndroidRuntime(2836): java.lang.RuntimeException: Unable to instantiate receiver com.example.RemoteControlReceiver: java.lang.InstantiationException: can't instantiate class com.example.RemoteControlReceiver; no empty constructor
Caused by:
E/AndroidRuntime(2836): Caused by: java.lang.InstantiationException: can't instantiate class com.example.RemoteControlReceiver; no empty constructor
E/AndroidRuntime(2836): at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime(2836): at java.lang.Class.newInstance(Class.java:1319)
E/AndroidRuntime(2836): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2205)
Итак, ясно, что это новое требование registerMediaButtonEventReceiver (появившееся в Android 4.1) предполагает наличие пустого конструктора.
Нет ли способа обойти это?
Например, есть ли способ получить ссылку на фактический объект RemoteControlReceiver (создан косвенно через mAudioManager.registerMediaButtonEventReceiver()
)? Чтобы я мог использовать метод доступа для установки члена данных RemoteControlReceiver после его создания?
RemoteControlReceiver
(не BroadcastReceiver!) о MyCustomActivity. Спасибо. - person an00b   schedule 27.02.2013