设为首页 加入收藏

TOP

Android指定专用APN(一)
2018-10-07 10:09:23 】 浏览:141
Tags:Android 指定 专用 APN

项目用的是全志T3 Android4.4平台,首先在系统中增加专用apn,在android\out\target\product\XXX\system\etc目录下,可以看到apns-conf.xml配置文件,这就是android系统里面的默认所有apn列表,源码则在android/device/softwinner/common/rild/apns-conf_sdk.xml 中修改,将新增的专用apn增加到这文件里即可。源码中加载所有apn是在android/package/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java加载:


        /*
        * Loads apns from xml file into the database
        *
        * @param db the sqlite database to write to
        * @param parser the xml parser
        *
        */
        private void loadApns(SQLiteDatabase db, XmlPullParser parser) {
            if (parser != null) {
                try {
                    db.beginTransaction();
                    XmlUtils.nextElement(parser);
                    while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
                        ContentValues row = getRow(parser);
                        if (row == null) {
                            throw new XmlPullParserException("Expected 'apn' tag", parser, null);
                        }
                        insertAddingDefaults(db, CARRIERS_TABLE, row);
                        XmlUtils.nextElement(parser);
                    }
                    db.setTransactionSuccessful();
                } catch (XmlPullParserException e) {
                    Log.e(TAG, "Got XmlPullParserException while loading apns.", e);
                } catch (IOException e) {
                    Log.e(TAG, "Got IOException while loading apns.", e);
                } catch (SQLException e) {
                    Log.e(TAG, "Got SQLException while loading apns.", e);
                } finally {
                    db.endTransaction();
                }
            }
        }


 这方法将解释出一个个apn,然后能过insertAddingDefaults把apn存储到数据库中,也就是我们可以在使用专用网络的时候,在这方法做动作,除专用网络对应的apn入库,其余不入库即可:


private void insertAddingDefaults(SQLiteDatabase db, String table, ContentValues row) {
            // Initialize defaults if any
            if (row.containsKey(Telephony.

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android 7.1原生设置项删除 下一篇Python下定时任务框架APScheduler..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目