Wpis z mikrobloga

#java #programowanie #androidstudio #android

Wiem, że sobota ale może ktoś coś poradzi. Z pewnych powodów muszę minimalnie polubić się z Javą i Android Studio. Mam do zrobienia mega prostą apkę, która po wciśnięciu przycisku odczyta numer wpisany w pole tekstowe i na ten numer wyśle SMS. Ostatni kontakt z Javą miałem parę lat temu ale coś tam się udało z pomocą internetu ukleić. Kod samej wysyłki SMS wygląda tak:

button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage("48123456789", null, "Ala ma kota", null, null);
}
});

Sprawdziłem w emulatorze i wszystko działa, wiadomość pokazuje się jako wysłana w urządzeniu. Problem pojawił się kiedy wygenerowałem plik APK i chciałem przetestować kod na prawdziwym telefonie. Aplikacja normalnie się uruchamia i pyta o uprawnienia do wysyłki i odczytu SMS. Zabawa polega jednak na tym, że SMS co prawda pokazuje się w domyślnej aplikacji SMS i nawet dopasowuje kontakt na podstawie numeru ale wiadomość się nie wysyła. Przy każdej takiej wiadomości dostaję komunikat "Nie wysłano. Dotknij aby spróbować ponownie. Oczywiście kiedy dotykam, wiadomość się poprawnie wysyła. Próbowałem na dwóch telefonach, jeden z Androidem 12, drugi Android 10 i w obu przypadkach występuje ten sam błąd. Czy ktoś z Was wie o co może chodzić? Przyjmuję każdą poradę w ciemno bo nie mam pojęcia o co chodzi.
  • 1
@mikra25: jak masz możliwość to sprawdź:
- czy działa na wcześniejszych wersjach Androida
- czy apka powinna zarequestować o dynamiczny permission
- co ciekawego pisze w logcacie - czy są jakieś błędy
- czy sendTextMessage zwraca jakieś błędy / status