public SMSContent(Handler handler) { super(handler); mHandler = handler; }
@Override public void onChange(boolean selfChange) { super.onChange(selfChange); Cursor cursor = null; String body = null;
//申请读取短信的权限,需要与用户交互 final int REQUEST_CODE_ASK_PERMISSIONS = 123; ActivityCompat.requestPermissions(MainActivity.this, new String[]{"android.permission.READ_SMS"}, REQUEST_CODE_ASK_PERMISSIONS);
//读取之前判断一下是否已经渠道权限 if (ContextCompat.checkSelfPermission(getBaseContext(), "android.permission.READ_SMS") == PackageManager.PERMISSION_GRANTED) { try { cursor = getContentResolver().query( Uri.parse("content://sms/inbox"), null, null, null, "date desc"); if (cursor != null) { if (cursor.moveToNext()) {//不遍历只拿当前最新的一条短信 //获取当前的短信内容 body = cursor.getString(cursor.getColumnIndex("body")); Message msg = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("body", body); msg.setData(bundle); mHandler.sendMessage(msg); }