您的位置:首页 > 移动开发 > Android开发

JavaScript 通过plus读取android手机短信内容

2016-06-11 19:31 411 查看
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 短信 手机