Android(java)学习笔记192:ContentProvider使用之虚拟短信
2024-08-30 06:52:46
1.虚拟短信应用场景:
急着脱身?应付老婆(老公、男女朋友查岗)?
使用虚拟通话短信吧。您只需通过简单设置,软件就会在指定时间会模拟一个“真实”来电或短信来迷惑对方,通过“真实”的证据让对方相信你,借此脱身!也是应付检查、朋友之间搞笑的利器,锁屏状态下可也虚拟来点哦。
2.下面通过实例案例演示其逻辑原理,如下:
(1)新建一个Android工程,命名为”虚拟短信",如下:
(2)UI不编辑,主要设计MainActivity,如下:
package com.himi.virtualsms; import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TimePicker; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); new Thread(){
public void run() {
try {
Thread.sleep(10000); } catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
ContentResolver resolver = getContentResolver();
Uri uri = Uri.parse("content://sms/");
ContentValues values = new ContentValues();
values.put("address","95533" );
values.put("date", System.currentTimeMillis());
values.put("type", 1);
values.put("body", "你的账户余额是¥100,000,000,000元");
resolver.insert(Uri.parse("content://sms/"), values);
};
}.start(); } }
其实逻辑实现是很简单的。
(3)特别注意在AndroidMainfest.xml文件,添加权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.himi.virtualsms"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>
最新文章
- Andorid 反编译App
- Quartz定时调度配置
- mysql删除二进制日志文件
- [原]Wpf应用Path路径绘制圆弧
- div+css+jQuery图片横向滚动代码(带左右点击按钮)
- 设置In_Memery
- Thinkphp 模版
- 使用C++11实现无锁stack(lock-free stack)
- C++中利用libxl操作Excel表格
- su Authentication failure解决
- Apache URL重写规则
- 谈一下我们是怎么做数据库单元测试(Database Unit Test)的
- 分布式文件系统FastDFS如何做到高可用
- 数组Array、数组API
- SpringMVC中@Controller和@RequestMapping用法和其他常用注解
- 潭州课堂25班:Ph201805201 django框架 第九课 模型补充 博客小案例 (课堂笔记)
- 2018/04/14 理解oAuth2.0
- linux系统中CST与EDT时间转换
- 用tomcat插件 在Eclipse 中配置Tomcat项目
- css3的calc()属性
热门文章
- JDBC+XML+DOM4J
- leetcode 659. Split Array into Consecutive Subsequences
- ignore users and roles by filter in sql source control
- Newtonsoft.Json.dll 反序列化JSON字符串
- 【转】Commonjs规范及Node模块实现
- VS2013Xml文件节点导航插件开发
- robotframework执行用例时,报错selenium.common.exceptions.WebDriverException: Message: unknown error: cannot get automation extension from unknown error: page could not be found: chrome-extension://aapnijgdinl
- Ruby&#160;&#160;Numeric类
- bzoj 2245 [SDOI2011]工作安排【最小费用最大流】
- vsftpd 配置文件