2011-04-26 201 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"); 

而上述代碼工作很酷。我有一個活動,我可以播放存儲在SD卡中的一些簡單的音頻文件。代碼如下:

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(我,「android.permission.CALL_PRIVILEGED」);' – Dinash 2011-04-27 10:28:13

回答

2

粘貼評論以從未答覆中刪除問題。下次請回答你自己的問題。

嗨大家經過一天的努力找到了解決辦法。我所做的是 ,而不是發送orderedBroadcast只是發送廣播,它現在 工作正常.... ctx.sendBroadcast(i);而不是 ctx.sendOrderedBroadcast(i,「android.permission.CALL_PRIVILEGED」);