当一台手机存在多个活动网络时,想要控制程序通过指定的网络进行通讯,请问该如何编码?    譬如有台手机同时存在CMNET和WIFI网络,我想使用WIFI网络进行网络通讯而不使用CMNET网络,请问程序该如何写?

解决方案 »

  1.   

    那我想指定使用CMNET网络呢?我的意思就是有多个可用网络时,可以人为指定使用某个网络。
      

  2.   

    wifi的优先级最高,在wifi可用时想用CMNET关闭wifi
    android.net.connectivityService.java
      

  3.   

    1.Android认为终端始终在线,因此,只要网络可用,始终有一个连接存在,即默认连接。
    2.Android中支持的网络类型有WIFI和Radio网络,Radio网络即是通过空中网络来连接的。
    3.Android中Radio网络按照APN类型分为Default,MMS,SUPL,DUN,Hipri。
    4.Radio中的Default和Wifi都是默认连接,如果Wifi可用,则会将Default对应的连接断掉,这个是Andriod中网络管理中处理的,应用程序如果需要使用默认连接,直接构造包发送即可,不参与网络管理,发不出去就是连接的问题。因此,对于这些默认连接的管理,应用程序是无需进行编程的。不知道是否回答你的问题?
      

  4.   

    接入点列表读取
    String id = "";
    String apn = "";
    String proxy = "";
    String name = "";
    String port = "";
    String type = "";
    String mcc = "";
    String mnc = "";
    String numeric = "";
    // 生成动态数组,并且转载数据
    ArrayList<HashMap<String, Object>> mylist = new ArrayList<HashMap<String, Object>>(); Uri uri = Uri.parse("content://telephony/carriers");
    Cursor mCursor = getContentResolver()
    .query(uri, null, null, null, null);
    Log.v("debug", "getApnList=" + mCursor.getCount());
    while (mCursor != null && mCursor.moveToNext()) {
    // APN id
    HashMap<String, Object> map = new HashMap<String, Object>();
    id = mCursor.getString(mCursor.getColumnIndex("_id"));
    name = mCursor.getString(mCursor.getColumnIndex("name"));
    apn = mCursor.getString(mCursor.getColumnIndex("apn"))
    .toLowerCase();
    proxy = mCursor.getString(mCursor.getColumnIndex("proxy"));
    port = mCursor.getString(mCursor.getColumnIndex("port"));
    mcc = mCursor.getString(mCursor.getColumnIndex("mcc"));
    mnc = mCursor.getString(mCursor.getColumnIndex("mnc"));
    numeric = mCursor.getString(mCursor.getColumnIndex("numeric"));
    ApnNode apnNode = new ApnNode();
    phoneSettedApnID = Integer.valueOf(id).intValue();
    apnNode.setName(name);
    apnNode.setApn(apn);
    apnNode.setProxy(proxy);
    apnNode.setPort(port);
    apnNode.setMcc(mcc);
    apnNode.setMnc(mnc);
    apnNode.setNumeric(numeric);
    apnNode.setId(phoneSettedApnID);
    map.put("apnNode", apnNode);
    mylist.add(map);
    // do other things...
    }
    return mylist;
      

  5.   

    楼主,我都说了叫你看ConnectivityService.java,别这么懒~。~
      

  6.   

    http://www.cnblogs.com/mainroadlee/archive/2011/01/11/Android_Network_State_Checking_And_Setting.html
    看看这篇有没有些用处。
      

  7.   

    我也在做和楼主同样想法的实验。
    让wifi和mobile同事共存,但是上网的时候就不知道该怎么手动指定该由哪条通路出去了、