안녕하세요, 저는 이상한 행동에 대한 이유를 찾기 위해 고심하고 있습니다. 나는 다음과 같이 전화를 걸고 그 코드에 참석할 서비스를 가지고있다 :android의 이상한 행동
Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_HEADSETHOOK);
i.putExtra(Intent.EXTRA_KEY_EVENT, event);
ctx.sendOrderedBroadcast(i, null);
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
ctx.sendOrderedBroadcast(buttonUp,
"android.permission.CALL_PRIVILEGED");
위의 코드는 잘 작동한다. 그리고 내가 어디에서 간단한 오디오 파일을 sdcard에 저장된 재생할 수있는 활동을했습니다. 그리고 그 코드는 다음과 같습니다 :
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse("file://"+Environment.getExternalStorageDirectory()
.getAbsolutePath()+"/" + fileName);
String type = "audio/mp3";
intent.setDataAndType(data, type);
startActivity(intent);
그리고 이것도 잘 동작합니다. 그러나 문제는 재생할 두 번째 활동이 시작되고 종료되면 통화에 참여하는 첫 번째 부분이 작동을 멈추는 것입니다. 나는 왜 이런 일이 일어나는지 알지 못한다. 아무도 그 이유를 전화 할 수 있습니까?
고투 끝에 하루를 보낸 사람이 해결책을 찾았습니다. 내가 한 모든 것은 orderedBroadcast를 보내지 않고 단순히 방송을 보내면 이제는 잘 작동합니다 ....'ctx.sendBroadcast (i); 대신에 ctx.sendOrderedBroadcast (i, "android.permission.CALL_PRIVILEGED"); – Dinash