用于AND API 19及更高版本的SMS接收器

时间:2016-07-07 10:05:58

标签: android broadcastreceiver

我的工作是创建短信APP以隐藏所选的号码,以便进一步进入默认短信应用程序,此任务是使用此代码进行AND< 19的简单API。

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

}

重要的:

早期版本的API完美拍摄abortBroadcast()。因此,如果我的列表中列出了发件人的号码,请参阅条件if(msg [i] .getOriginatingAddress()。EndsWith(l [i])){那么SMS将保存在我的数据库中而不是属于短信的默认应用程序。

如果我的列表中没有列出该号码,那么我必须进入我的数据库进行存储,但您必须使用默认的消息传递应用程序。

API&gt;中出现问题= 19,其中abortbroadcast完全不起作用,而且在删除默认短信应用程序中选定短信的可能性时被删除。

建议有人在默认情况下需要使用我的短信接收器时如何解决问题?我已经阅读了几乎所有http://android-developers.blogspot.cz/2013/10/getting-your-sms-apps-ready-for-kitkat.html,但也有很多关于stackoverflow的帖子,但我从没想过要解决这个问题。

感谢您的每一个想法

0 个答案:

没有答案