我现在的项目需要拨号连接专网(不是普通的互联网)
我的做法是在程序启动时先添加一个apn,向 content://telephony/carriers 库里添加一条记录,然后设置首选apn为我刚才新建的即修改content://telephony/carriers/preferapn里的值。上面测试都成功了,数据库里已经添加了记录,可是我在调用startUsingNetworkFeature的时候返回都是-1.//cm是我的ConnectivityManager实例
cm.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "keli.android.intelligenttravel:net");
这句话在海信的机器上连接成功,但是在华为C8500机器上返回-1,其他机器也是-1。应该是那个feature的问题吧
各位有人做过 android的拨号程序吗,说下如何使用自己建立的apn联网?

解决方案 »

  1.   

    startUsingNetworkFeature这个函数据说跟设备厂商的实现有关系。
      

  2.   

    connectivity.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "wap");
            该函数的feature参数是和厂商相关的,在OPhone1.5中就是“数据链接”设置中“接入点”的名称。默认值有:“internet”“wap” “mms” “cmmail” “custom”, 所以在非移动的android机器上,都不会有的!
              也就是说,这是Ophone特有的参数,只能在Ophones上运行
    而在Android机器上,需要用户手工输入网络连接点的名称,然后进行连接。 
    http://www.ophonesdn.com/forum/thread-2232-1-1.html
    遇到同样的问题,看了看Android2.2的源代码,这个feature应该是跟具体的厂家有关的。这个函数里这个参数的作用是用来确认要接入的网络使用的是那种APN。2.2的源代码里,如果前面的type是mobile的话,后面的feature只有在等于 Phone.FEATURE_ENABLE_MMS的时候才起作用。如果厂家扩展了ConnectivtyService里的实现的话,就有可能对其他的类型也有作用了,就像Ophone里有mms,wap什么的。所以这个feature具体用什么跟各个厂家有没有改Google的东西,有没有扩展有关。通过2.2的代码来看的话,当这个feature是"mms"的时候,就会去连接网络设置里MMS对应的PDP。感觉Google写这个东西出来最开始就是为了支持彩信的收发需要通过网关的需求。
    http://www.eoeandroid.com/thread-15381-1-1.html