安卓與伺服器php
㈠ android與php交互的問題
1 加入許可權:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2、啟動一個新線程
android4.0開始不允許直接在ui線程直接操作httpClient
3 、注意url:http://10.0.2.2/testAndroid.php
(不要填寫:127.0.0.1 這個是本機電腦的,模擬器有自己的默認ip)
4、通過handler將數據從新線程中傳送出來
步驟:
1 創建一個httpClient 對象
2 使用post發送數據 創建一個HttpPost對象
3 設置請求參數用setEntity()
4 調用httpClient對象的execute() 發送請求,返回一個HttpResponse
5 調用HttpResponse的getEntity() 方法可以獲取HttpEntity 對象
㈡ php 做安卓 伺服器 怎麼編寫代碼
php只能做服務端的數據處理,然後將數據用介面的方式,以json的數據形式給安卓客戶端程序調用。
test.php
<!--?php
classResponse{
constJSON=json;
/**
*按綜合方式輸出通信數據
*@paraminteger$code狀態碼
*@paramstring$message提示信息
*@paramarray$data數據
*@paramstring$type數據類型
*returnstring
*/
publicstaticfunctionshow($code,$message='',$data=array(),$type=self::JSON){
if(!is_numeric($code)){
return'';
}
$type=isset($_GET['format'])?$_GET['format']:self::JSON;
$result=array(
'code'=-->$code,
'message'=>$message,
'data'=>$data,
);
if($type=='json'){
self::json($code,$message,$data);
exit;
}elseif($type=='array'){
var_mp($result);
}elseif($type=='xml'){
self::xmlEncode($code,$message,$data);
exit;
}else{
//TODO
}
}
/**
*按json方式輸出通信數據
*@paraminteger$code狀態碼
*@paramstring$message提示信息
*@paramarray$data數據
*returnstring
*/
publicstaticfunctionjson($code,$message='',$data=array()){
if(!is_numeric($code)){
return'';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
echojson_encode($result);
exit;
}
/**
*按xml方式輸出通信數據
*@paraminteger$code狀態碼
*@paramstring$message提示信息
*@paramarray$data數據
*returnstring
*/
publicstaticfunctionxmlEncode($code,$message,$data=array()){
if(!is_numeric($code)){
return'';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
header(Content-Type:text/xml);
$xml=<!--?xmlversion='1.0'encoding='UTF-8'?-->
;
$xml.=<root>
;
$xml.=self::xmlToEncode($result);
$xml.=</root>;
echo$xml;
}
($data){
$xml=$attr=;
foreach($dataas$key=>$value){
if(is_numeric($key)){
$attr=id='{$key}';
$key=item;
}
$xml.=<{$key}{$attr}>;
$xml.=is_array($value)?self::xmlToEncode($value):$value;
$xml.=<!--{$key}-->
;
}
return$xml;
}
}
<!--?php
require_once('./test.php');
$data=array(
'id'=-->1,
'name'=>david
);
Response::show(200,'success',$data);
㈢ PHP+MYSQL開發的網站怎麼和安卓APP進行通訊,用什麼方法
首先你得要有一台可以跑php的伺服器
再次要保證你的安卓機(無論是模擬器還是真機)能訪問這台伺服器,要麼把伺服器部署到公網上,要麼讓安卓機和伺服器在同一個區域網內
安卓程序在程序內部向這台伺服器發起請求,就可以實現數據交互了,現在安卓系統不允許http請求在主線程內進行,所以通信一定是非同步的
一般來說,伺服器向手機推送信息的解決方案都不完善,如果一定要做,可以在手機這邊周期性的詢問伺服器來模擬