- 浏览: 105663 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
bcf102:
~~~~
Android检测耳机当前状态 -
itwangxinli:
reader未关闭
Android检测耳机当前状态 -
bcf102:
smilecatflowers 写道 额,楼主这个貌似是三棱锥 ...
Android OpenGL ES画四棱椎,贴图 -
smilecatflowers:
额,楼主这个貌似是三棱锥的说。。。
Android OpenGL ES画四棱椎,贴图
系统:android2.3 android2.3.4
说明:
(1),参考:http://www.2cto.com/kf/201206/134101.html
(2),应用的到程序
android2.3.4_GB_T34H\build\core\main.mk
android2.3.4_GB_T34H\development\data\etc\apns-conf.xml
android2.3.4_GB_T34H\development\data\etc\apns-conf_sdk.xml
1,APN的定义:
APN(Access Point Name),即“接入点名称”,是您在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络,用来标识GPRS的业务种类,目前分为两大类:CMWAP/UNIWAP/3GWAP(通过GPRS访问WAP业务)、CMNET/UNINET/3GNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。
2,android中APN流程分析
apn的流程分析及相关文件
相关文件作如下简单说明:
android2.3.4_GB_T34H\build\core\main.mk
--从该文件[核心Makefile文件]中可以看出有关apn设置的xml文件
摘录如下:
# Install an apns-conf.xml file if one's not already being installed.
ifeq (,$(filter %:system/etc/apns-conf.xml, $(PRODUCT_COPY_FILES)))
PRODUCT_COPY_FILES += \
development/data/etc/apns-conf_sdk.xml:system/etc/apns-conf.xml
ifeq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
$(warning implicitly installing apns-conf_sdk.xml)
endif
endif
apns-conf_sdk.xml --android2.3.4_GB_T34H/development/data/etc/apns-conf_sdk.xml
--主要用于生成system/etc/apns-conf.xml文件,生成过程本质上就是原文拷贝(用于sdk模拟)
apns.xml -- android2.3.4_GB_T34H/frameworks/base/core/res/res/xml/apns.xml
--该文件实际上在apn的设置方面没有实际意义,然而在android apn设置的逻辑方面却很重要,尤其是里面的version的值。
apns-conf.xml --android2.3.4_GB_T34H/out/target/product/generic/system/etc/apns-conf.xml
--该内容最终打包到system.ext4中:
3,效果查看:
(1)进入terminate
adb shell
cat /system/etc/apns-conf.xml
注:此文件就是来源于此!!
TelephonyProvider.java -- android2.3.4_GB_T34H/packages/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java
--该class主要用于APN的设置,由于源码提供的不符合定制要求,所以要手动修改!
但是修改最终目的是保证在数据库version更新后,能够及时更新维护APN的数据库表内容!
具体该类如何修改,下文会阐述!
首先保证成功运行了Emulator或开发板,查看APN所维护的数据,操作如下:
# adb shell
# cd /data/data/com.android.providers.telephony/databases
# sqlite3 telephony.db
sqlite> .dump carriers
4,程序中的实现(参考文章中说要改动java的代码,我这里没有改动,也可以用)
(1)打开android2.3.4_GB_T34H\development\data\etc\apns-conf.xml
对应的名称功能为:这里面要注意红色标出的值。
name 3g 名称
apn 3gnet APN
proxy not set 代理
port not set 端口
username not set 用户名
password not set 密码
server not set 服务
mmsc not set
mms proy not set 彩信代理
mms prot not set 彩信端口
mmc 460
mnc 01
authentication
apn type defaul APN类型
apn protocol ipv4 APN协议
对应我们要加入的代码部分:
<!--modify by xu_bin -->
<apn carrier="3g"
mcc="460"
mnc="01"
apn="3gnet"
user=""
password=""
server=""
mmsproxy=""
mmsport=""
mmsc=""
type="default"
/>
2),在编译程序前,删除android2.3.4_GB_T34H\out\target\product\smdkc110\system\etc\apns-conf.xml
(3),编译程序,烧录,下面是我们实现的效果:不用手动设定,自动加入APN上网设定。
5,上网设定自动开启的话,用户不注意的情况下,会产生流量。所以这个功能要用户使用的情况下开启。所以要设定默认为关闭
(1),“设置--无线网络--移动网络--已启用数据”这个选项如果选到了就可以上网,不选不能上网,所以我们默认这个选项关闭。
在程序:android2.3.4_GB_T34H\frameworks\base\services\java\com\android\server\ConnectivityService.java中
[java] /**
* @see ConnectivityManager#getMobileDataEnabled()
*/
public boolean getMobileDataEnabled() {
enforceAccessPermission();
boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
//Settings.Secure.MOBILE_DATA, 1) == 1;
Settings.Secure.MOBILE_DATA, 0) == 1;//leilei ++10.25
if (DBG) Slog.d(TAG, "getMobileDataEnabled returning " + retVal);
return retVal;
}
/**
* @see ConnectivityManager#getMobileDataEnabled()
*/
public boolean getMobileDataEnabled() {
enforceAccessPermission();
boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
//Settings.Secure.MOBILE_DATA, 1) == 1;
Settings.Secure.MOBILE_DATA, 0) == 1;//leilei ++10.25
if (DBG) Slog.d(TAG, "getMobileDataEnabled returning " + retVal);
return retVal;
} Settings.Secure.MOBILE_DATA, 1) == 1;的情况下,选项默认为开, Settings.Secure.MOBILE_DATA, 0) == 1;时,选项默认为关闭。
(2),实现效果如下:
说明:
(1),参考:http://www.2cto.com/kf/201206/134101.html
(2),应用的到程序
android2.3.4_GB_T34H\build\core\main.mk
android2.3.4_GB_T34H\development\data\etc\apns-conf.xml
android2.3.4_GB_T34H\development\data\etc\apns-conf_sdk.xml
1,APN的定义:
APN(Access Point Name),即“接入点名称”,是您在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络,用来标识GPRS的业务种类,目前分为两大类:CMWAP/UNIWAP/3GWAP(通过GPRS访问WAP业务)、CMNET/UNINET/3GNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。
2,android中APN流程分析
apn的流程分析及相关文件
相关文件作如下简单说明:
android2.3.4_GB_T34H\build\core\main.mk
--从该文件[核心Makefile文件]中可以看出有关apn设置的xml文件
摘录如下:
# Install an apns-conf.xml file if one's not already being installed.
ifeq (,$(filter %:system/etc/apns-conf.xml, $(PRODUCT_COPY_FILES)))
PRODUCT_COPY_FILES += \
development/data/etc/apns-conf_sdk.xml:system/etc/apns-conf.xml
ifeq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
$(warning implicitly installing apns-conf_sdk.xml)
endif
endif
apns-conf_sdk.xml --android2.3.4_GB_T34H/development/data/etc/apns-conf_sdk.xml
--主要用于生成system/etc/apns-conf.xml文件,生成过程本质上就是原文拷贝(用于sdk模拟)
apns.xml -- android2.3.4_GB_T34H/frameworks/base/core/res/res/xml/apns.xml
--该文件实际上在apn的设置方面没有实际意义,然而在android apn设置的逻辑方面却很重要,尤其是里面的version的值。
apns-conf.xml --android2.3.4_GB_T34H/out/target/product/generic/system/etc/apns-conf.xml
--该内容最终打包到system.ext4中:
3,效果查看:
(1)进入terminate
adb shell
cat /system/etc/apns-conf.xml
注:此文件就是来源于此!!
TelephonyProvider.java -- android2.3.4_GB_T34H/packages/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java
--该class主要用于APN的设置,由于源码提供的不符合定制要求,所以要手动修改!
但是修改最终目的是保证在数据库version更新后,能够及时更新维护APN的数据库表内容!
具体该类如何修改,下文会阐述!
首先保证成功运行了Emulator或开发板,查看APN所维护的数据,操作如下:
# adb shell
# cd /data/data/com.android.providers.telephony/databases
# sqlite3 telephony.db
sqlite> .dump carriers
4,程序中的实现(参考文章中说要改动java的代码,我这里没有改动,也可以用)
(1)打开android2.3.4_GB_T34H\development\data\etc\apns-conf.xml
对应的名称功能为:这里面要注意红色标出的值。
name 3g 名称
apn 3gnet APN
proxy not set 代理
port not set 端口
username not set 用户名
password not set 密码
server not set 服务
mmsc not set
mms proy not set 彩信代理
mms prot not set 彩信端口
mmc 460
mnc 01
authentication
apn type defaul APN类型
apn protocol ipv4 APN协议
对应我们要加入的代码部分:
<!--modify by xu_bin -->
<apn carrier="3g"
mcc="460"
mnc="01"
apn="3gnet"
user=""
password=""
server=""
mmsproxy=""
mmsport=""
mmsc=""
type="default"
/>
2),在编译程序前,删除android2.3.4_GB_T34H\out\target\product\smdkc110\system\etc\apns-conf.xml
(3),编译程序,烧录,下面是我们实现的效果:不用手动设定,自动加入APN上网设定。
5,上网设定自动开启的话,用户不注意的情况下,会产生流量。所以这个功能要用户使用的情况下开启。所以要设定默认为关闭
(1),“设置--无线网络--移动网络--已启用数据”这个选项如果选到了就可以上网,不选不能上网,所以我们默认这个选项关闭。
在程序:android2.3.4_GB_T34H\frameworks\base\services\java\com\android\server\ConnectivityService.java中
[java] /**
* @see ConnectivityManager#getMobileDataEnabled()
*/
public boolean getMobileDataEnabled() {
enforceAccessPermission();
boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
//Settings.Secure.MOBILE_DATA, 1) == 1;
Settings.Secure.MOBILE_DATA, 0) == 1;//leilei ++10.25
if (DBG) Slog.d(TAG, "getMobileDataEnabled returning " + retVal);
return retVal;
}
/**
* @see ConnectivityManager#getMobileDataEnabled()
*/
public boolean getMobileDataEnabled() {
enforceAccessPermission();
boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
//Settings.Secure.MOBILE_DATA, 1) == 1;
Settings.Secure.MOBILE_DATA, 0) == 1;//leilei ++10.25
if (DBG) Slog.d(TAG, "getMobileDataEnabled returning " + retVal);
return retVal;
} Settings.Secure.MOBILE_DATA, 1) == 1;的情况下,选项默认为开, Settings.Secure.MOBILE_DATA, 0) == 1;时,选项默认为关闭。
(2),实现效果如下:
发表评论
-
Android5.0以上系统自动接电话的实现
2016-04-17 11:10 1055最近在做自动接听电话的功能,在网上查了很多,4.4.2的系统 ... -
Android图片下载缓存库picasso解析
2014-09-30 11:04 1786picasso是Square公司开源的一个Android图形 ... -
Android setting各子页面地址
2014-03-24 10:25 800Android软件时,常常需要打开系统设置或信息界面,来设置相 ... -
如何得到优酷网mp4格式视频文件url
2013-09-05 22:30 3233前言 众所周知,视频在网页中使用FLV格式是最常用和方便 ... -
AndroidSAX解析错误,内容获取不完整
2013-08-29 22:35 873转载:http://blog.csdn.net/feng88 ... -
用ViewGroup实现多View自动换行的功能
2013-08-24 22:58 900public class PredicateLayout ... -
Android使用File创建临时文件,File.createTempFile
2013-08-17 11:49 4067废话不多说,直接上代码 File files = ... -
android应用创建快捷方式
2013-08-15 08:29 753android应用创建快捷方式,包名写自己的 Int ... -
MatrixCursor和MergeCursor
2013-07-15 13:53 10071、MatrixCursor创建记录 ContentPr ... -
android屏蔽home键
2013-07-05 08:44 745@Override public boolean onK ... -
Android Service被关闭后自动重启,解决被异常kill 服务
2013-06-18 22:32 5990每次调用startService(Intent)的时候,都会 ... -
Android网络通信的六种方式示例代码
2013-06-18 10:57 964手机作 ... -
android通过http访问mysql或者sqlserver,oracle数据库
2013-05-14 16:50 997表单提交中get和post方式的区别有5点1.get是从服 ... -
Android中SQLite应用详解
2013-05-14 11:24 814现在的主流移动设备像Android、iPhone等都使用SQ ... -
SQLite的升级
2013-05-14 10:46 679SQLite的升级 做Android应用,不可避免的会 ... -
Android系统启动过程
2013-05-06 16:21 1407一、开机加电 bootloader(汇编语言)进行底 ... -
android4.0虚拟按键
2013-04-07 15:54 825我们公司手机依然还是支持硬件按键,但是android4.0 ... -
Android动态加载jar/dex
2013-03-18 17:31 878Android动态加载jar/dex 前言 在目前 ... -
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
2013-03-18 13:51 970前言 相信这样一个问题,大家都不会陌生, “有什么 ... -
getWritableDatabase()和getReadableDatabase()的区别
2013-03-14 11:32 1912getReadableDatabase()并不是以只读方式打开 ...
相关推荐
Android 手机 APN 设置 APN(Access Point Name)是移动网络中的一个重要概念,它是指移动网络中的一个访问点名称,用于标识移动网络中的一个访问点。Android 手机中的 APN 设置是指在 Android 手机中设置移动网络...
在Android系统中,APN(Access Point Name)是设置数据连接的关键配置,它定义了设备如何连接到互联网或移动数据网络。APN包含了运营商提供的网络接入点信息,比如网络类型(2G、3G、4G、5G)、用户名、密码、服务器...
Android 系统中对于 APN 的网络 API 没有公开,但是我们可以通过阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭 APN。 APN(Access Point Name)是移动网络上的一个概念,指的...
在Android系统中,APN(Access Point Name,接入点名称)是用于移动设备连接网络的重要配置,它定义了手机如何连接到互联网,包括使用的网络类型(如GPRS、3G、4G或5G)、数据服务提供商以及相关认证信息。...
在Android系统中,APN(Access Point Name)是用于配置移动数据网络连接的重要设置,它定义了设备如何连接到互联网,特别是通过蜂窝数据。APN设置包括运营商、用户名、密码、代理服务器、端口等信息,对于使用特定...
在Android系统中,APN(Access Point Name)是网络连接的关键配置,用于定义设备如何接入互联网,特别是通过移动数据。APN包含了网络提供商的名称、数据类型、用户名、密码等信息,这些信息决定了手机如何通过运营商...
Android 全面解析 APN APN(Access Point Name)是 GPRS 背bone 中的一个参考点,指向一个 GGSN(Gateway GPRS Support Node)。GGSN 是一个核心网络设备,负责将用户的数据流量转发到互联网上。APN 是一个字符串,...
在Android系统中,APN(Access Point Name)是用于设置移动数据网络连接的关键参数,它定义了设备如何连接到互联网,通常包括网络运营商、数据服务类型等信息。本模块主要探讨的是如何在Android应用程序中通过代码来...
在Android系统中,APN设置用于定义数据连接的类型、网络速度、安全设置等,比如2G、3G、4G或5G的数据连接,以及是否启用彩信和互联网服务。在某些情况下,用户可能需要手动切换APN以优化网络性能或者解决特定服务的...
### Android APN开发流程详解 #### 一、数据连接机制概览 Android设备的数据连接...理解这些细节对于深入掌握Android系统的数据连接机制至关重要,有助于开发者优化网络性能、解决连接问题以及开发更稳定的应用程序。
数据连接的核心控制类是 DataConnectionTracker,存在于 GSMPhone 里,数据连接不需要用户的干预,在 APN 设置好之后,在适当的情况下就会自动激活。 其关键步骤包括: * DataConnectionTracker.trySetupData→...
当Android手机出现无法修改或保存APN设置的情况时,原因往往在于系统默认的APN配置与目标网络环境存在差异。例如,当使用了国外运营商定制的ROM时,其内置的APN配置可能与国内运营商的要求不符,导致用户自定义的APN...
本项目中,我们关注的重点是如何在Android系统中设置APN,并且实现APN节点的切换,这对于网络服务的提供,特别是在企业级项目中,具有重要的实用价值。 首先,我们要理解APN的作用。APN包含了运营商信息、数据类型...
本教程将聚焦于创建一个GRRS/3G(GPRS/EDGE和3G网络)APN(Access Point Name,接入点名称)上网开关的Android小部件。这个小部件允许用户快速切换移动数据连接,对于经常需要控制数据流量的用户非常实用。 首先,...
// 设置新的 APN 值 values.put("apn", "新的 APN 名称"); resolver.update(uri, values, null, null); ``` 需要注意的是,在修改 APN 前,需要检查当前 APN 的状态,确保其处于可修改状态。同时,在修改 APN 后,...
标题所提到的“Android APN文件转换为Windows Phone 8 APN文件”是一个解决跨平台APN配置问题的方法。由于Android的APN配置信息存储在一个文本文件中,通常命名为“apn.conf”或“apns-conf.xml”,而WP8系统则需要...
2011年全球APN接入点 APN(Access Point Name)是移动...APN 设置是移动设备连接互联网的重要设置,了解不同国家和地区的 APN 设置信息可以帮助 Android 开发者更好地理解 APN 设置,并确保应用程序正确连接互联网。
### Android的APN开发源码分析 #### 一、Android数据连接原理 Android的数据连接机制主要是基于PPP(Point-to-Point Protocol)的方式实现的。PPP协议是一种广泛使用的串行链路通信协议,它允许用户通过拨号或其他...