SMS Receiver pro AND API 19 a vyssi – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

SMS Receiver pro AND API 19 a vyssi – Java – Fórum – Programujte.comSMS Receiver pro AND API 19 a vyssi – Java – Fórum – Programujte.com

 

VladislavK0
Super člen
7. 7. 2016   #1
-
0
-

Ahoj všem

Mám za úkol vytvořit SMS APP pro skrytí vybraných čísel tak aby nepropadli dále do defaultní SMS APP, tento ukol je jednoduchy pro AND API < 19 používám tento kod.

public class SMSReceiver extends BroadcastReceiver {
    public static String TAG = "SMSReceiver";
    ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);

    public SMSReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        SMS_Throttle.VytvorDatabazi(context);
        String act = intent.getAction();
        Log.d(TAG, act);
        if (Dtb.HodnotaZNastaveniINT(ENastaveni.START_SKRYTE_SLUZBY, 1) == 1) {
            Bundle bundle = intent.getExtras();
            SmsMessage[] msgs = null;
            boolean isAbort = false;
            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");
                msgs = new SmsMessage[pdus.length];
                String lst[][] = SMS_Throttle.getTlfCisla(context);
                String[] l = new String[lst.length];
                for (int j = 0; j < lst.length; j++)
                    l[j] = lst[j][0];
                for (int i = 0; i < msgs.length; i++) {
                    msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    for (int j = 0; j < l.length; j++) {
                        if (msgs[i].getOriginatingAddress().endsWith(l[j])) {
                            if (Dtb.HodnotaZNastaveniINT(ENastaveni.PRISLA_AKTIVITA, 0) == 1) {
                                tg.startTone(ToneGenerator.TONE_DTMF_5, 30);
                                Toast.makeText(context, msgs[i].getMessageBody(), Toast.LENGTH_LONG).show();
                            }
                            isAbort = true;
                            Dtb.UlozActivitu(l[j], msgs[i].getMessageBody(), EKomunType.RECEIVE_SMS);
                        }
                    }
                }
            }
            if (isAbort) {
                abortBroadcast();
            }
        }
    }
}

Duležité:

v nižších verzích API perfektně zabere abortBroadcast(). Tedy pokud číslo odesílatele JE uvedeno v mém seznamu viz podmínka if (msgs[i].getO­riginatingAddres­s().endsWith(l[j])) { pak tato SMS BUDE uložena v mé databázi aNEPROPADNE do defaultní APP pro SMS messaging.

Pokud číslo NENÍ uvedené v mém seznamu pak se do mé databáze uložit NESMÍ ale MUSIpropadnout do defaultní APP pro messaging.

Problem vznikl v API >= 19 kde ten abortbroadcast vůbec nefunguje a navic byly odstraněny práva na možnost výmazu vybraných SMS z defaultní SMS APP.

Poradí někdo jak řešit problem kdy POTŘEBUJI využít můj receiver SMS a současně ten defaultní? Již jsem pročetl snad vše http://android-developers.blogspot.cz/2013/10/getting-your-sms-apps-ready-for-kitkat.html ale i celou řadu příspěvků na stackoverflow ale nikde jsem na řešení této myšlenky nenarazil.

Díky za každou myšlenku

Nahlásit jako SPAM
IP: 37.48.10.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 26 hostů

Podobná vlákna

Android - SMS API DualSIM — založil lin

SMS modul pro PrestaShop — založil SLK

API pro google-chrome — založil TuTi_fruTi

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý