JavaScript 通过plus读取android手机短信内容
JavaScript 通过plus读取android手机短信内容。
1.获取android权限
在HBuilder工程中双击应用的“manifest.json”文件,切换到“代码视图”中在plus->distribute->google->permissions节点下添加权限数据:
"<uses-permission android:name=\"android.permission.RECEIVE_SMS\"/>","<uses-permission android:name=\"android.permission.READ_SMS\"/>"
2.通过native.js调用android原生API获取短信内容
源码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>正己烷检测系统APP</title>
<script type="text/javascript">
//SmsInfo存放一条短信的各项内容
var SmsInfo = {}
//Sms存放所有短信
var Sms = {}
document.addEventListener('plusready', ready, false);
//plusready后的回调函数,读取短信库里面的所有短信内容
function ready()
{
var Cursor = plus.android.importClass("android.database.Cursor")
var Uri = plus.android.importClass("android.net.Uri") //注意啦,android.net.Uri中的net是小写
var activity = plus.android.runtimeMainActivity()
var uri = Uri.parse("content://sms/");
var projection=new Array("_id","address","person","body","date","type")
var cusor = activity.managedQuery(uri,projection,null,null,"date desc")
var idColumn = cusor.getColumnIndex("_id")
var nameColumn = cusor.getColumnIndex("person")
var phoneNumberColumn = cusor.getColumnIndex("address")
var smsbodyColumn = cusor.getColumnIndex("body")
var dateColumn = cusor.getColumnIndex("date")
var typeColumn = cusor.getColumnIndex("type")
if(cusor != null)
{
while(cusor.moveToNext())
{
SmsInfo.id = cusor.getString(idColumn)
SmsInfo.Name = cusor.getInt(nameColumn)
SmsInfo.Date = cusor.getLong(dateColumn)
SmsInfo.Date = getFormatDate(SmsInfo.Date)
SmsInfo.PhoneNumber = cusor.getString(phoneNumberColumn)
SmsInfo.Smsbody = cusor.getString(smsbodyColumn)
SmsInfo.Type = cusor.getString(typeColumn)
document.write("id: " + SmsInfo.id +"<br />"+
"person: " + SmsInfo.Name +"<br />"+
"Date: " + SmsInfo.Date +"<br />"+
"address: " + SmsInfo.PhoneNumber +"<br />"+
"info: " + SmsInfo.Smsbody +"<br />"+
"type: " + SmsInfo.Type + "<hr />")
}
cusor.close()
}
}
//扩展Date功能:将long型日期转换为特定的格式
Date.prototype.format = function (format) {
var o = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S": this.getMilliseconds()
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}
//将long型日期转换为特定格式
function getFormatDate(l, pattern) {
date = new Date(l);
if (pattern == undefined) {
pattern = "yyyy-MM-dd hh:mm:ss";
}
return date.format(pattern);
}
</script>
</head>
<body>
</body>
</html>
在Hbuilder上写好后直接进行连上安卓手机测试
JavaScript 通过plus读取android手机短信内容相关推荐
- android 短信转发设置权限,用Tasker实现Android手机短信转发到钉钉
之前的一篇文章[<用Tasker实现Android手机短信转发到微信>](https://taskerm.com/2018/12/22/forwarded-sms-to-wechat. ...
- android手机短信利器
自己开发的android手机短信利器来了,第一次献给机锋了 2013-2-7 21:52 上传 下载附件 (80.45 KB) 聚讯通是一款运行在手机安卓系统上的短信邮件增强工具,可以方便的进行短信. ...
- 安卓开发系列 之如何获取手机短信内容
1 手机中短信数据库相关字段包括: _id:短信序号,如100 address:发件人地址,即手机号,如+8613811810000,这里需要注意的是手机号是否加+86,可以加上86和不加86分别测试 ...
- android手机短信验证码读取问题
Android手机读取短信验证码,本质其实还是要读取短信内容,再从内容里边抽取验证码. Android现在短信分为通知信息及其他信息2种.通知类短信,app短信信息读取不到,android系统禁止第三 ...
- Android开发之监听或获取手机短信内容
最近开始学习安卓,要做一个可以监听手机短信的内容,做个笔记,方便以后查看 有两种方式: 方式一:通过广播监听短信信息 注册一个广播接收器 <receiver android:name=" ...
- android 手机短信恢复,Android短信如何恢复
Android短信如何恢复?虽然当下微信使用非常普及,但不少重要事项还是会使用短信进行沟通的,比如快递密码箱ID提醒.信用卡还款提醒.验证码等.其目的是确保一定收到,不会因断网.未登陆等消息消失.所以 ...
- SMSSync:Android手机短信猫
SMSSync,可以主动转发手机短信到网站,并且设定TASK,定时从网站获取待发短信进行发送.SMSSync还有一个特点,可以设定固定的一段文本自动回复,也可以把接收的短信转发到网站后,自动从网站获取 ...
- Android手机短信验证--Bmob短信验证
在Android项目中,用户注册的时候一般都会用到手机短信验证,最近使用了Bmob的短信验证,感觉还行,这里推荐给大家使用,下面是使用的方法: 1.注册一个Bmob账号 注册成功之后,按照开发文档一步 ...
- 安卓手机超过30天短信恢复_免费恢复短信记录安卓(教你Android手机短信恢复技巧)...
随着手机的不断更新换代,现在的手机短信统一存储在了手机中的一种sqlite格式的数据库文件中,想要恢复手机短信,首先需要获取手机的root权限,这是手机的最高权限,获取权限伴随着风险,如果不太了解相关 ...
最新文章
- 第十七届第一场智能车竞速校内赛,比往年来的早一些
- Hive Serde、Beeline、JDBC
- 问题:HikariPool-1 - Shutdown initiated...的解决
- 如果没有Visual Studio 2015,我们如何创建.NET Core项目 ?
- ASP.NET 2.0 中Cookies的Expires属性详解
- 【OpenCV学习笔记】【编程实例】一(VS2010/MFC+OPenCV2.4.7读取图片和摄像头)
- AR/MR研究团队和机构
- Java千百问_05面向对象(008)_java中覆盖是什么
- LOIC低轨道粒离子炮QQ交流群
- gst-launch-1.0在Linux下的命令
- 手机更换证件照背景色只需1分钟,别去打印店花冤枉钱了
- 威斯康星大学硕士计算机科学,威斯康星大学麦迪逊分校计算机科学理学硕士研究生申请要求及申请材料要求清单...
- Zuul1与Spring Cloud Gateway的区别
- java分子分母的加减乘除_JAVA实现精确的加减乘除代码
- 深度解析用户画像标签体系构建方法
- 【小游戏】Unity游戏愤怒的足球(小鸟)
- C语言 —— pta寻找孪生素数 (20 分)
- P21-前端基础-CSS颜色四种表示方式
- 面向广义的rl代理商
- 算法2_非对称加密算法之ECDSA(椭圆曲线数字签名算法)