
json是本质是怎么? 字符串啊
传图可以通过以下方式(最终都是以流的形式传递,但是格式不一样):
1、流 移动端将转为字节流 传递, 你直接就获取流 然后转
2、字符串 移动端将转为一个字符串(很长),然后传递,你后台就获取字符串
3、压缩文件 文件传输(也是流),后台获取流转文件
你说json的话,那他是将图转为字符串?
或者他其实是用网络框架提供的传递文件的方法直接传递的图?
再或者他是写的文件读写流?
然后你就百度你框架(Spring MVC?)怎么获取用myEclipse就够了,myeclipse是eclipse的超集,myeclipse就是包含很多开发用的插件包的eclipse,所以eclipse有的功能,myeclipse都有。
这里用到的手机型号为魅族M6120,其中的具体步骤如下:
1、打开手机的设置界面,需要选择无线网络这一项。
2、在无线网络中找到已经连接的WIFI网络,并点击旁边的详情按钮。
3、会进入WIFI的详情页面,选择底部的代理设置项目。
4、等来到代理设置窗口以后,点击里面的无选项。
5、下一步,在菜单中选择手动这一项。
6、这个时候可以填写相关的服务器和端口。
7、这样一来通过点击右上角的保存按钮,即可实现Android开发使用代码配置手机wifi的pac地址。
转贴:Android调用WebService
作者:欧阳旻
WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同 *** 作系统平台、不同语言、不同技术整合到一块。在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。PC版本的WEbservice客户端库非常丰富,例如Axis2,CXF等,但这些开发包对于Android系统过于庞大,也未必很容易移植到Android系统中。因此,这些开发包并不是在我们的考虑范围内。适合手机的WebService客户端的SDK有一些,比较常用的有Ksoap2,可以从>public class CheckNetwork {
private NetworkStateReceiver netStateReceiver;
private Context mContext;
private long servicetimes = 0;
private Utility myUtility = null;
private int runInternerTime = 0;
private HandlerNetwork mHandlerNetwork = new HandlerNetwork();
private static CheckNetwork mNetworkState = null;
private Map<String, Handler> mHandlerOuterMap = new HashMap<String, Handler>();
public static CheckNetwork getNetworkState(Context context) {
if (mNetworkState == null) {
mNetworkState = new CheckNetwork(context);
}
return mNetworkState;
}
private CheckNetwork(Context context) {
mContext = context;
myUtility = new Utility(mContext);
registNetworkStatusReceiver();
}
public void registNetworkStatusReceiver() {
netStateReceiver = new NetworkStateReceiver(mHandlerNetwork);
IntentFilter filter = new IntentFilter(
"androidnetconnCONNECTIVITY_CHANGE");
filteraddAction("androidintentactionMY_NET_BOOTCHECK");
mContextregisterReceiver(netStateReceiver, filter);
Intent intent = new Intent("androidintentactionMY_NET_BOOTCHECK");
mContextsendBroadcast(intent);
}
/
增加一个网络状态消息接受者
@param key
@param handler
/
public void addHandler(String key, Handler handler) {
mHandlerOuterMapput(key, handler);
if (!keyequals("IntegrateActHandlerKey")) {
// 当整合页添加handle时,网络状态还没准备好,所以不通过handle对外发通知
sendNetworkMessage(mHandlerOuterMap);
}
}
/
向接受者集合中的接受者发送网络状态的消息
@param map
/
public static void sendNetworkMessage(Map<String, Handler> map) {
Set<String> key = mapkeySet();
for (Object element : key) {
String s = (String) element;
Message msg = Messageobtain();
msgwhat = GlobalParamsHandle_MsgNetWorkStatusordinal();
mapget(s)sendMessage(msg);
}
}
private class HandlerNetwork extends Handler {
@Override
public void handleMessage(Message msg) {
if (msgwhat == GlobalParamsHandle_MsgConnectSuccessordinal()) {
if (SystemcurrentTimeMillis() - servicetimes > 3000) {// 防止短时间内接收多个广播,执行多次
runInternerTime = 0;
servicetimes = SystemcurrentTimeMillis();
new CheckServerThread()start();
}
} else if (msgwhat == GlobalParamsHandle_MsgConnectFail
ordinal()) {
if (SystemcurrentTimeMillis() - servicetimes > 2000) {// 防止短时间内接收多个广播,执行多次
servicetimes = SystemcurrentTimeMillis();
runInternerTime++;
if (runInternerTime > 3) {
// Intent intent = new Intent(context,
// IntegrateActivityclass);
// contextstartActivity(intent);
GlobalParamsNetworkStatus = 0;
sendNetworkMessage(mHandlerOuterMap);
} else {
Loge("RUN", "本地连接不上尝试第" + runInternerTime + "次");
Message msgrun = Messageobtain();
msgrunwhat = GlobalParamsHandle_MsgInternerFail
ordinal();
mHandlerNetworksendMessageDelayed(msgrun, 3000);
}
}
} else if (msgwhat == GlobalParamsHandle_MsgInternerFail
ordinal()) {
//检测棒子与路由器间的连接不足3次时,继续检测
Intent intent = new Intent(
"androidintentactionMY_NET_BOOTCHECK");
mContextsendBroadcast(intent);
}else if(msgwhat==GlobalParamsHandle_MsgNetWorkStatusInordinal()){
if(msgarg1==0){
GlobalParamsNetworkStatus = 2;
sendNetworkMessage(mHandlerOuterMap);
}else{
GlobalParamsNetworkStatus = 1;
sendNetworkMessage(mHandlerOuterMap);
}
}
}
}
private class CheckServerThread extends Thread{
@Override
public void run() {
File f = new File(EnvironmentgetExternalStorageDirectory()getPath()
+ "/CudgelLauncher/Images");
if (!fexists())
fmkdirs();
File ftemp = new File(EnvironmentgetExternalStorageDirectory()
getPath() + "/CudgelLauncher/Temp");
if (!ftempexists())
ftempmkdirs();
// 等待SD卡准备完成
while (true) {
try {
if (EnvironmentgetExternalStorageState()equals(
EnvironmentMEDIA_MOUNTED)) {
// 因为旧的配置文件都不适合用于新版,所以要把旧的都清除再重新加载
myUtilitydelete(new File("/data/data/"
+ GlobalParamsPROCESSPACKNAME
+ "/databases/cudgellauncher"));
myUtilitydelete(new File("/system/media/cudgel"));
myUtilitydelete(new File("/mnt/sdcard/CudgelLauncher"));
break;
}
Threadsleep(1000);
} catch (InterruptedException e) {
eprintStackTrace();
}
}
XmlParser parser = new XmlParser();
File fileConfig = new File("/mnt/sdcard/CudgelLauncher/configxml");
File file = new File("/mnt/sdcard/CudgelLauncher/ConfigInterfacexml");
while (true) {
try {
Map<String, String> mapConfig = parser
getServiceAsmx(fileConfig);
Map<String, String> mapInterface = parsergetServiceAsmx(file);
if (!fileConfigexists() || mapConfig == null
|| !mapConfigcontainsKey("area") || !fileexists()
|| mapInterface == null
|| !mapInterfacecontainsKey("servicenamespace")) {
// 第一次运运没配置文件时或防止配置文件被损坏,重新复制
myUtilitysaveConfigFile(Environment
getExternalStorageDirectory()getPath()
+ "/CudgelLauncher", "Configxml", Rrawconfig,
mContext);
myUtilitysaveConfigFile(Environment
getExternalStorageDirectory()getPath()
+ "/CudgelLauncher", "ConfigInterfacexml",
Rrawconfiginterface, mContext);
} else {
GlobalParamsAreaID = mapConfigget("area");
break;
}
} catch (Exception e) {
eprintStackTrace();
}
}
//开始检测通不通公网
PingAddrUtils pingAddrUtils=new PingAddrUtils(mHandlerNetwork,GlobalParamsHandle_MsgNetWorkStatusInordinal());
pingAddrUtilsstartPingAddr();
superrun();
}
}
}
ublic class PingAddrUtils {
private final static byte[] writeLock = new byte[0];
private String[] urls = new String[] { "tiipotchinadhiacom",
">
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)