2011-04-26 8 views
0

Salut les gars, j'ai eu du mal à trouver la raison de ce comportement étrange. J'ai un service qui assisteront à l'appel entrant et que le code comme suit:Comportement étrange dans 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"); 

Et le code ci-dessus fonctionne cool. Et j'ai une activité d'où je peux jouer un fichier audio simple stocké dans la carte SD. Et le code pour cela suit:

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); 

et cela aussi fonctionne bien. mais le problème est qu'une fois que la deuxième activité à jouer est commencée et terminée, la première partie à assister à l'appel cesse de fonctionner. Je ne sais pas pourquoi ça se passe comme ça. Quelqu'un peut-il communiquer la raison de cela?

+0

Salut Guys après une journée de lutte trouvé une solution. Tout ce que j'ai fait est au lieu d'envoyer des commandes à Broadcast, il suffit d'envoyer l'émission et ça marche bien maintenant ... 'ctx.sendBroadcast (i); au lieu de ctx.sendOrderedBroadcast (i, "android.permission.CALL_PRIVILEGED"); ' – Dinash

Répondre

2

Pastille du commentaire pour supprimer la question sans réponse. Veuillez répondre à votre propre question la prochaine fois.

Salut Guys après une journée de lutte trouvé une solution. Tout ce que j'ai fait est au lieu d'envoyer commandéBroadcast il suffit d'envoyer la diffusion et il fonctionne bien maintenant .... ctx.sendBroadcast (i); au lieu de ctx.sendOrderedBroadcast (i, "android.permission.CALL_PRIVILEGED");