安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题。这篇博客就秀一波“黑科技”。 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证码,一些app马上就能自动获取并 ...
安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题。这篇博客就秀一波“黑科技”。
读取用户短信
Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证码,一些app马上就能自动获取并填上验证码,省去我们手动填写验证码。原理就是通过Android的ContentProvider组件间接访问系统的短信数据库,获取所有短信内容。下面来演示一下。
布局很简单,如下:
代码如下:
public class MainActivity extends Activity { List<Message> smsList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); smsList = new ArrayList<Message>(); } public void click(View v){ //访问内容提供者获取短信 ContentResolver cr = getContentResolver(); // 短信内容提供者的主机名 Cursor cursor = cr.query(Uri.parse("content://sms"), new String[]{"address", "date", "body", "type"}, null, null, null); while(cursor.moveToNext()){ String address = cursor.getString(0); long date = cursor.getLong(1); String body = cursor.getString(2); String type = cursor.getString(3); Message sms = new Message(body, type, address, date); smsList.add(sms); Log.e("TAG", sms.toString()); } } public void click2(View v){ = = new File("sdcard/sms.); FileOutputStream fos; try { fos = new FileOutputStream(file); xs.setOutput(fos, "utf-8"); xs.startDocument("utf-8", true); xs.startTag(null, "message"); for (Message sms : smsList) { xs.startTag(null, "sms"); xs.startTag(null, "body"); xs.text(sms.getBody()); xs.endTag(null, "body"); xs.startTag(null, "date"); xs.text(sms.getDate() + ""); xs.endTag(null, "date"); xs.startTag(null, "type"); xs.text(sms.getType()); xs.endTag(null, "type"); xs.startTag(null, "address"); xs.text(sms.getAddress()); xs.endTag(null, "address"); xs.endTag(null, "sms"); } xs.endTag(null, "message"); xs.endDocument(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:Android黑科技,读取用户短信+修改系统短信数据库
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。