展会信息港展会大全

Android使用cmwap访问互联网的办法
来源:互联网   发布日期:2016-01-14 11:28:39   浏览:1998次  

导读:[代码] [Java]代码01//检查网络 是否正常02 private boolean checkNet(){0304ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);0506netWrokInfo = mana......

[代码] [Java]代码

01//检查网络 是否正常

02 private boolean checkNet(){

03

04ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

05

06netWrokInfo = manager.getActiveNetworkInfo();

07 if (netWrokInfo == null || !netWrokInfo.isAvailable()) {

08 Toast.makeText(this, "当前的网络不可用,请开启\n网络", Toast.LENGTH_LONG).show();

09 return false;

10 }

11 else if(netWrokInfo.getTypeName().equals("MOBILE")& netWrokInfo.getExt raInfo().equals("cmwap")){

12 Toast.makeText(this, "cmwap网络不可用,请选择cmnet网络", Toast.LENGTH_LONG).show();

13 return false;

14 }else{

15

16return true;

17 }

18 }

[代码] [Java]代码

01/**

02Android 使用cmwap GPRS 方式联网

03CMWAP和CMNET只是中国移动为其划分的两个GPRS接入方式。中国移动对CMWAP作了一定的限制,主要表现在CMWAP接入时只能访问 GPRS网络内的IP(10.*.*.*),而无法通过路由访问Internet,我们用CMWAP浏览Internet上的网页 就是通过WAP网关协议或它提供的HTTP代理服务实现的。 因此,只有满足以下两个条件的应用 才能在中国移动的CMWAP接入方式下正常工作:

041.应用程序 的网络请求基于HTTP协议。

052.应用程序 支持HTTP代理协议或WAP网关协议。

06这也就是为什么我们的G1无法正常用CMWAP的原因。

07一句话:CMWAP是移动限制的,理论上只能上WAP网,而CMNET可以用GPRS浏览WWW

08方法一:

09*/

10URL url = new URL("http://10.0.0.172/img/baidu_logo.gif");

11HttpURLConnection conn = (HttpURLConnection) url.openConnection();

12conn.setRequestProperty("X-Online-Host", "www.baidu.com");

13conn.setDoInput(true);

14conn.connect();

15InputStream is = conn.getInputStream();

16bitmap = BitmapFactory.decodeStream(is);

17is.close();

18conn.disconnect();

[代码] [Java]代码

01package org.apache.http.examp les.client;

02

03import org.apache.http.Header;

04import org.apache.http.HttpEntity;

05import org.apache.http.HttpHost;

06import org.apache.http.HttpResponse;

07import org.apache.http.client.HttpClient;

08import org.apache.http.client.methods.HttpGet;

09import org.apache.http.conn.params.ConnRoutePNames;

10import org.apache.http.impl.client.DefaultHttpClient;

11import org.apache.http.util.EntityUtils;

12

13public class ClientExecuteProxy {

14

15 public static void main(String [] args)throws Exception {

16

17 HttpHost proxy = new HttpHost( "10.0.0.172", 80, "http");

18 HttpHost target = new HttpHost("YOUR_TARGET_IP", 80,"http");

19

20 DefaultHttpClient httpclient = new DefaultHttpClient();

21 httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);

22

23

24 HttpGet req = new HttpGet("/");

25

26 System.out.println("executing request to " + target + " via "+ proxy);

27 HttpResponse rsp = httpclient.execute(target, req);

28 HttpEntity entity = rsp.getEntity();

29

30 System.out.println("----------------------------------------");

31 System.out.println(rsp.getStatusLine());

32 Header[] headers = rsp.getAllHeaders();

33 for (int i = 0; i

34 System.out.println(headers);

35 }

36 System.out.println("----------------------------------------");

37

38 if (entity != null) {

39 System.out.println(EntityUtils.toString(entity));

40 }

41

42 // When HttpClient instance is no longer needed,

43 // shut down the connection manager to ensure

44 // immediate deallocation of all system resources

45 httpclient.getConnectionManager().shutdown();

46 }

47

48}

[代码] 在Android上建立GPRS连接

01private boolean openDataConnection() {

02 // Set up data connection.

03 DataConnection conn = DataConnection.getInstance();

04

05 if (connectMode == 0) {

06 ret = conn.openConnection(mContext, "cmwap", "cmwap","cmwap");

07 } else {

08 ret = conn.openConnection(mContext, "cmnet", "", "");

09 }

10

11}

[代码] Android 判断网络状态

01/*

02 在使用Android连接网络的时候,并不是每次都能连接到网络,在这个时候,我们最好是在程序启动的时候对网络的状态进行一下判断,如果没有网络则进行即时提醒用户进行设置。

03要判断网络状态,首先需要有相应的权限,下面为权限代码:

04即允许访问网络状态:

05

06下面为判断代码:

07*/

08private boolean NetWorkStatus() {

09

10boolean netSataus = false;

11 ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

12

13 cwjManager.getActiveNetworkInfo();

14

15if (cwjManager.getActiveNetworkInfo() != null) {

16 netSataus = cwjManager.getActiveNetworkInfo().isAvailable();

17 }

18

19if (netSataus) {

20 Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络")

21 .setMessage("是否对网络进行设置?");

22 b.setPositiveButton("是", newDialogInterface.OnClickListener() {

23public void onClick(DialogInterface dialog, int whichButton) {

24 Intent mIntent = new Intent("/");

25 ComponentName comp = new ComponentName(

26"com.android.settings",

27"com.android.settings.WirelessSettings");

28 mIntent.setComponent(comp);

29 mIntent.setAction("android.intent.action.VIEW");

30 startActivityForResult(mIntent,0); // 如果在设置完成后需要再次进行操作,可以重写操作代码,在这里不再重写

31 }

32 }).setNeutralButton("否", newDialogInterface.OnClickListener() {

33public void onClick(DialogInterface dialog, int whichButton) {

34 dialog.cancel();

35 }

36 }).show();

37 }

38

39return netSataus;

40 }

41//通过上面的代码即可完成对网络状态的判断!

赞助本站

人工智能实验室

相关热词: cmwap

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港