Android笔记系列--获取短信内容
2018-01-26 17:52
295 查看
public class MainActivity extends Activity { private BroadcastReceiver smsReceiver; private IntentFilter filter2; private Handler handler; private EditText et; private String strContent; private String patternCoder = "(?<!\\d)\\d{6}(?!\\d)"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et = (EditText) findViewById(R.id.et); handler = new Handler() { public void handleMessage(android.os.Message msg) { et.setText(strContent); }; }; filter2 = new IntentFilter(); filter2.addAction("android.provider.Telephony.SMS_RECEIVED"); filter2.setPriority(Integer.MAX_VALUE); smsReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Object[] objs = (Object[]) intent.getExtras().get("pdus"); for (Object obj : objs) { byte[] pdu = (byte[]) obj; SmsMessage sms = SmsMessage.createFromPdu(pdu); // 短信的内容 String message = sms.getMessageBody(); Log.d("logo", "message " + message); // 短息的手机号。。+86开头? String from = sms.getOriginatingAddress(); Log.d("logo", "from " + from); // Time time = new Time(); // time.set(sms.getTimestampMillis()); // String time2 = time.format3339(true); // Log.d("logo", from + " " + message + " " + time2); // strContent = from + " " + message; // handler.sendEmptyMessage(1); if (!TextUtils.isEmpty(from)) { String code = patternCode(message); if (!TextUtils.isEmpty(code)) { strContent = code; handler.sendEmptyMessage(1); } } } } }; registerReceiver(smsReceiver, filter2); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(smsReceiver); } /** * 匹配短信中间的6个数字(验证码等) * * @param patternContent * @return */ private String patternCode(String patternContent) { if (TextUtils.isEmpty(patternContent)) { return null; } Pattern p = Pattern.compile(patternCoder); Matcher matcher = p.matcher(patternContent); if (matcher.find()) { return matcher.group(); } return null; } }
相关文章推荐
- Android笔记 如何获取短信实时内容
- android手机获取系统短信sqlite数据库并查看内容
- android broadcast 广播机制对短信处理 获取短信内容
- Android开发之监听或获取手机短信内容
- android手机获取系统短信sqlite数据库并查看内容
- Android开发之监听或获取手机短信内容
- android获取短信所有内容
- Android开发之监听或获取手机短信内容 分类: Android 消息 2015-04-20 19:23 38人阅读 评论(0) 收藏
- Android 获取短信内容
- Android开发之监听或获取手机短信内容
- Android(java)学习笔记254:ContentProvider使用之内容观察者(观察发出去的短信)
- android获取短信所有内容
- Android开发之监听或获取手机短信内容
- Android开发之监听或获取手机短信内容
- [Android 数据库] android手机获取系统短信sqlite数据库并查看内容
- Android之短信监听与内容获取
- Android开发之监听或获取手机短信内容【转】
- Android入门-短信-彩信部分内容的获取方法
- Android开发之监听或获取手机短信内容
- Android 获取系统短信内容