免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3044 | 回复: 3

检测APN是否存在 [复制链接]

论坛徽章:
2
综合交流区版块每日发帖之星
日期:2015-08-06 06:20:00每日论坛发贴之星
日期:2015-08-06 06:20:00
发表于 2011-08-01 14:28 |显示全部楼层
//检测APN是否存在
    public int checkAPN()
    {
            ApnNode checkApn = new ApnNode();
            checkApn.setName("apnname");
            checkApn.setApn("cmnet");
            checkApn.setMcc(mcc);     //mcc是地区号,中国是460
            checkApn.setMnc(getMNC());   //是运营商号 移动00 联通 01 电信 03
            checkApn.setNumeric(getSimOperator());
            return isApnExisted(checkApn);
    }
    //检测是否存在
    public int isApnExisted(ApnNode apnNode)
    {

            int apnId = -1;
        //            Uri uri = Uri.parse("content://telephony/carriers/");
            Cursor mCursor = getContentResolver().query(APN_TABLE_URI, null, null, null, null);
            while (mCursor != null && mCursor.moveToNext())
            {
               apnId = mCursor.getShort(mCursor.getColumnIndex("_id"));
               //String name = mCursor.getString(mCursor.getColumnIndex("name"));
               String apn = mCursor.getString(mCursor.getColumnIndex("apn"));
               //String type = mCursor.getString(mCursor.getColumnIndex("type"));
               //String proxy = mCursor.getString(mCursor.getColumnIndex("proxy"));
               //String port = mCursor.getString(mCursor.getColumnIndex("port"));
               //String current = mCursor.getString(mCursor.getColumnIndex("current"));
               String mcc = mCursor.getString(mCursor.getColumnIndex("mcc"));
               String mnc = mCursor.getString(mCursor.getColumnIndex("mnc"));
               String numeric = mCursor.getString(mCursor.getColumnIndex("numeric"));
               //Log.e("isApnExisted", "info:" + apnId + "_" + name + "_" + apn + "_" + type + "_" + current + "_" + proxy);
               if (/*apnNode.getName().equals(name)*/(apnNode.getApn().equals(apn)
                               && apnNode.getMcc().equals(mcc) && apnNode.getMnc().equals(mnc) && apnNode.getNumeric().equals(numeric)))
                       //&& (type == null || "default".equals(type) || "".equals(type))|| (apnNode.getApn().equals(apn) && "".equals(proxy) && "".equals(port))
               {
                       return apnId;
               }
               else
               {
                apnId = -1;
               }
       
            }
            return apnId;
    }

论坛徽章:
2
综合交流区版块每日发帖之星
日期:2015-08-06 06:20:00每日论坛发贴之星
日期:2015-08-06 06:20:00
发表于 2011-08-01 14:30 |显示全部楼层
设置默认APN

    public void SetDefaultAPN(int id)
    {
            setDefaultApn(id);
            ConnectivityManager cm = (ConnectivityManager) this.getSystemService(CONNECTIVITY_SERVICE);
            try
            {
                        cm.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "cmnet");    //3G网络
            }
            catch (Exception e)
            {
                    e.printStackTrace();
            }
            Cursor cursor = getContentResolver().query(APN_TABLE_URI_DEF, null, null, null, null);
            int rows = cursor.getCount();
            cursor.moveToFirst();
            String apn;
            for (int i = 0; i < rows; i++)
            {
               apn = cursor.getString(1);
               Log.e("----------------", apn);
               cursor.moveToNext();
            }

    }

    public boolean setDefaultApn(int apnId)
    {
            boolean res = false;
            ContentResolver resolver = getContentResolver();
            ContentValues values = new ContentValues();
            values.put("apn_id", apnId);
       
       
            try
            {
               resolver.update(APN_TABLE_URI_DEF, values, null, null);
               Cursor c = resolver.query(APN_TABLE_URI_DEF, new String[] { "name", "apn" }, "_id=" + apnId, null, null);
               if (c != null)
               {
                res = true;
                c.close();
               }
            }
            catch (SQLException e)
            {
       
            }
            return res;

    }

论坛徽章:
2
综合交流区版块每日发帖之星
日期:2015-08-06 06:20:00每日论坛发贴之星
日期:2015-08-06 06:20:00
发表于 2011-08-01 14:45 |显示全部楼层
增加新的APN节点
        //插入一个新的APN接入点
    private int InsetAPN()
    {
            ApnNode checkApn = new ApnNode();
            checkApn.setName(apnname);
            checkApn.setApn("cmnet");   
            checkApn.setUser("*");
            checkApn.setPassword("*");
            checkApn.setServer(server);
            checkApn.setMcc(getMCC());
            checkApn.setMnc(getMNC());
            checkApn.setNumeric(getSimOperator());
            int apnd_id = addNewApn(checkApn);
            return apnd_id;
    }

    //增加一个APN
    public int addNewApn(ApnNode apnNode)
    {
            int apnId = -1;
            ContentResolver resolver = getContentResolver();
            ContentValues values = new ContentValues();
            values.put("name", apnNode.getName());
            values.put("apn", "cmnet");
            values.put("server", "syxzsp.ln");
            //values.put("proxy", apnNode.getProxy());
            //values.put("port", apnNode.getPort());
            values.put("user", "*");
            values.put("password", "*");
            values.put("mcc", apnNode.getMcc());
            values.put("mnc", apnNode.getMnc());
            values.put("numeric", apnNode.getNumeric());
            // Note: this values need to be update, and for now, it only for XT800.
       
            Cursor c = null;
            try
            {
               Uri newRow = resolver.insert(APN_TABLE_URI, values);
               if (newRow != null)
               {
                c = resolver.query(newRow, null, null, null, null);
                
                int idindex = c.getColumnIndex("_id");
                c.moveToFirst();
                apnId = c.getShort(idindex);
                //Log.d("Robert", "New ID: " + apnId + ": Inserting new APN succeeded!");
               }
            }
            catch (Exception e)
            {
                    finish();
                e.printStackTrace();
            }
       
            if (c != null)
                    c.close();
       
            return apnId;
    }

论坛徽章:
2
综合交流区版块每日发帖之星
日期:2015-08-06 06:20:00每日论坛发贴之星
日期:2015-08-06 06:20:00
发表于 2011-08-01 15:00 |显示全部楼层
//取出MCC值
    private String getMCC()
    {
            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            String numeric = tm.getSimOperator();
            String mcc = numeric.substring(0, 3);
            Log.i("MCC is", mcc);
            return mcc;
    }

    //取出MNC值
    private String getMNC()
    {
            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            String numeric = tm.getSimOperator();
            String mnc = numeric.substring(3, numeric.length());
            Log.i("MNC is", mnc);
            return mnc;
    }
    //取出Sim卡信息
    private String getSimOperator()
    {
            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            String SimOperator = tm.getSimOperator();
            return SimOperator;
    }
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP