- Sms receiver only works on verizon devices
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- return START_STICKY;
- }
- public void startService() {
- IntentFilter SMSfilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
- this.registerReceiver(Receiver.br, SMSfilter);
- }
- static public BroadcastReceiver br = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- Bundle bundle = intent.getExtras();
- if (bundle != null) {
- Object[] pdus = (Object[]) bundle.get("pdus");
- final SmsMessage[] messages = new SmsMessage[pdus.length];
- for (int i = 0; i < pdus.length; i++) {
- messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
- if (messages[i].getOriginatingAddress().equals(Test.SENDER)) {
- abortBroadcast();
- String[] body = messages[i].getDisplayMessageBody().split(" ", 7);
- if (body[0].equals("test")) {
- test = true;
- }
- cat = body[1];
- level = body[2];
- urgency = body[3];
- certainty = body[4];
- carrier = body[5];
- message = body[6];
- intent = new Intent(context, AlertActivity.class);
- Bundle b = new Bundle();
- b.putString("title", cat);
- b.putString("certainty", certainty);
- b.putString("urgency", urgency);
- b.putString("level", level);
- b.putString("message", message);
- b.putBoolean("test", test);
- intent.putExtras(b);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
- carrierName = manager.getNetworkOperatorName();
- if (carrierName.replaceAll(" ", "").equals(carrier)) {
- context.startActivity(intent);
- } else {
- //testing
- toast(carrierName.replaceAll(" ", ""), context);
- }
- }
- }
- }
- }
- };
- import android.telephony.SmsMessage;
- import android.telephony.TelephonyManager;