class myServiceHandler extends Handler {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void handleMessage(android.os.Message msg) {
Intent intent = new Intent(MyService.this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(MyService.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notifi = new Notification.Builder(getApplicationContext())
.setContentIntent(pendingIntent)
.build();
mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
AudioManager audio = (AudioManager) getSystemService(MyService.this.AUDIO_SERVICE);
boolean isEarphoneOn = (intent.getIntExtra("state", 0) > 0) ? true : false;
if (isEarphoneOn) {
Log.e("ear",String.valueOf(isEarphone);
} else {
Log.e("ear",String.valueOf(isEarphone);
}
}
};
registerReceiver(mBroadcastReceiver, mIntentFilter);
}
}
위와 같이 MyServiceHandler를 만들어서 이어폰의 연결 유무를 서비스에서 확인하고 있는데요
문제가 되는게
이어폰을 연결하고 빠르게 제거하게 되면 그대로 연결이 되어 있다고 인식하더라고요
그리고 다시 이어폰을 꽃으면 그떄 연결해제로 인식하게 되는데요
이 핸들러는 onStartCommand(Intent intent, int flags, int startId) 이부분에 넣어서 사용하고 있습니다.
일단 BroadCast를 이용하고 있는거라 동작의 변화가 있으면 하는부분인데 불리는 부분인데...
왜 인식 관련되서 가끔씩 오류가 생기는지 의문이어서요
onStartCommand에서 부르는게 잘못 된걸까요???