2011-04-26 5 views
0

안녕하세요, 저는 이상한 행동에 대한 이유를 찾기 위해 고심하고 있습니다. 나는 다음과 같이 전화를 걸고 그 코드에 참석할 서비스를 가지고있다 :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); 

그리고 이것도 잘 동작합니다. 그러나 문제는 재생할 두 번째 활동이 시작되고 종료되면 통화에 참여하는 첫 번째 부분이 작동을 멈추는 것입니다. 나는 왜 이런 일이 일어나는지 알지 못한다. 아무도 그 이유를 전화 할 수 있습니까?

+0

고투 끝에 하루를 보낸 사람이 해결책을 찾았습니다. 내가 한 모든 것은 orderedBroadcast를 보내지 않고 단순히 방송을 보내면 이제는 잘 작동합니다 ....'ctx.sendBroadcast (i); 대신에 ctx.sendOrderedBroadcast (i, "android.permission.CALL_PRIVILEGED"); – Dinash

답변

2

답변을 채우지 않은 상태에서 질문을 삭제하려면 덧글을 붙여 넣으십시오. 다음 번에 자신의 질문에 대답하십시오.

안녕하세요, 고군분투 한 끝에 해결책을 찾았습니다. 내가 한 모든 것은 입니다. orderedBroadcast를 보내지 않고 단순히 브로드 캐스트를 보내면 이 잘 작동합니다 .... ctx.sendBroadcast (i); 대신 ctx.sendOrderedBroadcast (i, "android.permission.CALL_PRIVILEGED");