App падает, когда гарнитура отключенаApp падает, когда гарнитура отключена - App (услуга) перезапускается
Я пытаюсь следующий код
private int headsetSwitch = 1;
registerReceiver(headsetReciever, new IntentFilter(
Intent.ACTION_HEADSET_PLUG));
public BroadcastReceiver headsetReciever = new BroadcastReceiver() {
public boolean headsetconnected = false;
public void onReceive(Context context, Intent intent) {
if (intent.hasExtra("state")) {
if (headsetconnected && intent.getIntExtra("state", 0) == 0) {
headsetconnected = false;
Toast.makeText(getApplicationContext(), "headsetconnected = false",
Toast.LENGTH_SHORT).show();
headsetSwitch = 0;
}
else if (!headsetconnected
&& intent.getIntExtra("state", 0) == 1) {
headsetconnected = true;
Toast.makeText(getApplicationContext(), "headsetconnected = true",
Toast.LENGTH_SHORT).show();
headsetSwitch = 1;
// Lockscreencontrol();
}
}
switch (headsetSwitch) {
case (0):
headsetDisconnected();
break;
case (1):
break;
}
}
};
private void headsetDisconnected() {
try {
if(mMediaplayer.isplaying())
mMediaplayer.pause();
}
} catch (Exception e) {
// TODO: handle exception
}
}
Приведенный выше код отлично работает, если у меня есть приложение работает (который либо сведен к минимуму, либо мы в настоящее время просматриваем некоторые действия из приложения), когда я отключу минигарнитуру, которую медиаплеер приостановит, что является ожидаемым результатом.
Приложение составлено на основе сервиса.
Теперь, когда я удаляю приложение, служба работает в фоновом режиме, когда я отключил гарнитуру, приложение аварийно завершает работу.
Для обнаружения приложение было скрыли я попытался отменить приемник вещания, но все же приложение будет врезаться
Код, используемый для обнаружения, что приложение было закрыто, используя следующий код
public void onTaskRemoved(Intent rootIntent) {
unregisterReceiver(headsetReciever);
}
К сожалению У меня нет журнала, чтобы поделиться какой-либо помощью было бы здорово.
---------------- Обновление -------------
после того, как в состоянии генерировать LogCat от фактического устройства
Я способен генерировать следующие ERRORLOG
E/MUSIC PLAYER(4110): castconnected:false mApiClientnull mRemoteMediaPlayernull
и более конкретно
E/AndroidRuntime(4183): FATAL EXCEPTION: main
E/AndroidRuntime(4183): java.lang.RuntimeException: Unable to start service com
[email protected] with null: java.lang.NullPointerExce
ption
E/AndroidRuntime(4183): Caused by: java.lang.NullPointerException
E/AndroidRuntime(4183): at .PlayService.onStart
Command(PlayService.java:233)
теперь у меня есть два варианта либо
1) остановить службу от перезапуска 2) отключить проверку удаления гарнитуры, когда приложение скрыло
как может любой из вышеперечисленного может быть сделано
Пожалуйста, разместите stacktrace/logcat. –
К сожалению, нет способа проверить гарнитуру на эмуляторе, или есть ли какие-либо просьбы, пожалуйста, помогите мне в этом, тогда я смогу опубликовать logcat. Я тестирую устройство lenovo A7000. – 1234567
обновил вопрос с помощью журнала ошибок, пожалуйста, проверьте и помогите, если это возможно. – 1234567