Странное поведение в андроиде - PullRequest
0 голосов
/ 26 апреля 2011

Привет, ребята, я изо всех сил пытался найти причину этого странного поведения. У меня есть служба, которая будет присутствовать на входящем звонке, и этот код будет следующим:

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

и это тоже отлично работает. но проблема в том, что, как только начинается вторая игра, которая должна играть, и заканчивается первая часть, которая посещает вызов, перестает работать. Я не знаю, почему это происходит так. Кто-нибудь может сказать причину этого.

1 Ответ

2 голосов
/ 20 июля 2011

Вставка комментария для удаления вопроса из неотвеченного. Пожалуйста, ответьте на свой вопрос в следующий раз.

Привет, ребята, после дня борьбы нашли решение. Все, что я сделал, это вместо отправки заказанного Broadcast просто отправьте трансляцию и теперь работает нормально .... ctx.sendBroadcast (i); вместо ctx.sendOrderedBroadcast (я, "android.permission.CALL_PRIVILEGED");

...