Aplikacja mająca za zadanie odtwarzać dźwięk przy otrzymaniu sms

Odpowiedz Nowy wątek
2019-07-15 01:51
0

Proszę o informację co jest w tym programie nie tak. W momencie w którym warunek jest spełniony, program się wywala (wyłącza). Jak to powinno być zrobione, żeby działało?

public class alarm extends BroadcastReceiver {
    mp mpc = new mp();

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        Bundle bundle = arg1.getExtras();
        SmsMessage[] msgs=null;
        String wiadomosc="";
        Object[] pdus =(Object[])bundle.get("pdus");
        msgs=new SmsMessage[pdus.length];
        for(int x=0;x<msgs.length;x++){
            msgs[x]=SmsMessage.createFromPdu((byte[]) pdus[x]);
            wiadomosc=msgs[x].getMessageBody();
            Toast.makeText(arg0, wiadomosc, Toast.LENGTH_LONG).show();
            if (wiadomosc=="test") {
                mpc.setMediaPlayer();
            }
        }
    }
}
public class mp extends AppCompatActivity {
    MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.x);

    public void setMediaPlayer(){
        mediaPlayer.start();
    }

}

Pozostało 580 znaków

2019-07-15 09:28
2

protip - istnieje coś takiego jak debugger, możesz też użyć try catch i łapać co się wywali.

edytowany 1x, ostatnio: mr_jaro, 2019-07-15 09:28
Można też przeczytać dokumentację lub otworzyć pierwszy lepszy tutorial o aktywnościach i broadcastach :D - panryz 2019-07-15 18:58

Pozostało 580 znaków

2019-07-15 18:21
0
mr_jaro napisał(a):

protip - istnieje coś takiego jak debugger, możesz też użyć try catch i łapać co się wywali.

Założyłem, że dla osoby która zajmuje się tematem, to tylko zerknięcie na kod. Ale dzięki chociaż za to, spróbuje pojechać debugerem.

edytowany 1x, ostatnio: Adroid, 2019-07-15 18:22
Daję ci wędkę a nie rybę. Chcesz tego nauczyć czy nie? A to co podałem to podstawowe rzeczy które musi znać każdy kto pracuje z kodem. - mr_jaro 2019-07-15 19:00

Pozostało 580 znaków

2019-07-15 18:55
1

No pierwsze co, to nie tak się tworzy Activity. Klasa mp u Ciebie to jest aktywność, która nie dość, że nie powinna być startowana z Broadcast'a to na dodatek nie robisz tego przez Intent

Pozostało 580 znaków

2019-07-28 19:40
0
panryz napisał(a):

No pierwsze co, to nie tak się tworzy Activity. Klasa mp u Ciebie to jest aktywność, która nie dość, że nie powinna być startowana z Broadcast'a to na dodatek nie robisz tego przez Intent

Rozwiń proszę. Dlaczego nie powinna być startowana z Broadcastem? To właśnie tam przy tym if'ie, następuje zjawisko które mnie interesuje. Jak to zrobić przez Intent?

Pozostało 580 znaków

2019-07-28 20:19
0

Wyobraź sobie że każda aplikacja którą posiadasz na telefonie reaguje na jakiś broadcast (systemowy lub nie) i za każdym razem otwiera Ci się jakaś aplikacja.
Żeby zagrać dzwięk po jakiś broadcaście możesz zrobić notyfikację z dźwiękiem którą zaraz potem będziesz cancelować. Możesz też zrobić Service które zagra Ci ten dźwięk.

Intent: https://developer.android.com/reference/android/content/Intent
Service: https://developer.android.com/guide/components/services i tutaj masz też jak wystartować service za pomocą intentu

Pozostało 580 znaków

2019-07-28 20:25
0

Nie potrzebujesz tam Activity, skoro chcesz tylko odtwarzać dźwięk. Activity (zazwyczaj) służy za punkt wejścia do aplikacji, żeby mieć interakcję z oknem poprzez UI. Po prostu odpal dźwięk ze swojego BroadcastReceivera. I poczytaj jak się zarządza tymi zasobami - https://developer.android.com/guide/topics/media/mediaplayer.

A odnośnie startowania własnego Activity, to nie tworzy się go poprzez konstruktor, bo za jego utworzenie odpowiada framework, czyli Android - https://developer.android.com[...]cs/firstapp/starting-activity.

edytowany 2x, ostatnio: Michał Sikora, 2019-07-28 20:26

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0