【展讯】关于卡的数据网络连接
2014-12-31 14:47
225 查看
工程模式下,输入暗骂“*983*123#”后,重启手机sim卡的数据网络连接(双卡单通)
展讯平台:
packages\apps\Dialer\src\com\android\dialer\SpecialCharSequenceMgr.java中添加。
相关类:android.sim.Sim; android.sim.SimManager; android.telephony.TelephonyManager; android.telephony.SprdPhoneSupport; android.net.ConnectivityManager;
MTK平台KK:
展讯平台:
packages\apps\Dialer\src\com\android\dialer\SpecialCharSequenceMgr.java中添加。
///ZTE SR-ENGINEERMODE-0690 网络重启 restart network data - add begin private static final String MMI_RESTART_NETWORKDATA_DISPLAY = "*983*123#"; static boolean handleRestartNetworkDataDisplay(Context context, String input, boolean useSystemWindow) { android.util.Log.d("zdqddd", "SpecialCharSequenceMgr.java-->handleRestartNetworkDataDisplay()==input="+input); if(input.equals(MMI_RESTART_NETWORKDATA_DISPLAY)) { restartNetworkDataDisplay(context, useSystemWindow); return true; } return false; } static void restartNetworkDataDisplay(Context context, boolean useSystemWindow) { final int simId = Settings.System.getInt(context.getContentResolver(), Settings.System.MULTI_SIM_DATA_CALL, SprdPhoneSupport.getDefaultPhoneId()); android.util.Log.d("zdqddd", "SpecialCharSequenceMgr.java-->restartNetworkDataDisplay()==start=="); android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] simId="+simId); int phoneId = TelephonyManager.getDefaultDataPhoneId(context); android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] phoneId="+phoneId); final ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final SimManager mSimManager = SimManager.get(context); android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] SimManager="+mSimManager); new AsyncTask<Void, Void, Boolean>() { @Override protected Boolean doInBackground(Void... arg0) { // TODO Auto-generated method stub //如果数据连接是打开的,则先关闭 boolean enabled = cm.getMobileDataEnabledByPhoneId(simId); android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] enabled="+enabled); if(enabled) { cm.setMobileDataEnabledByPhoneId(simId, false); } /*if(simId >= 0) { cm.setMobileDataEnabled(false); }*/ return null; } @Override protected void onPostExecute(Boolean result) { // TODO Auto-generated method stub if(TelephonyManager.isMultiSim()) {//双卡 android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] double =================="); //数据连接一开始是打开的,关闭后,再打开相应的卡槽sim卡的数据连接 /* if(mSimManager == null) { return; } Sim mSims[] = mSimManager.getSims();//卡信息 int simLen = mSims.length; android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] simLen="+simLen); for(int i=0;i<simLen;i++) { android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] mSims["+i+"]="+mSims[i]); } */ cm.setMobileDataEnabledByPhoneId(simId, true); } else {//打开 android.util.Log.d("zdqddd", "[restartNetworkDataDisplay] single =================="); cm.setMobileDataEnabled(true); } super.onPostExecute(result); } }.execute(); android.util.Log.d("zdqddd", "SpecialCharSequenceMgr.java-->restartNetworkDataDisplay()==end=="); } ///ZTE SR-ENGINEERMODE-0690 restart network data -zhengdongqin add end
相关类:android.sim.Sim; android.sim.SimManager; android.telephony.TelephonyManager; android.telephony.SprdPhoneSupport; android.net.ConnectivityManager;
MTK平台KK:
import android.os.AsyncTask; import android.provider.Telephony.SIMInfo; import android.net.ConnectivityManager; import com.mediatek.common.featureoption.FeatureOption; // kk版本,simId是从1开始累加的,如先插入移动卡,然后拔掉在插入联通卡,则移动卡的simId是1 // 联通卡的simId是2,如果再插入另外一张sim卡,则simId是3 final long simId = Settings.System.getLong(SoundRecorder.this.getContentResolver(), Settings.System.GPRS_CONNECTION_SIM_SETTING, Settings.System.DEFAULT_SIM_NOT_SET); new AsyncTask<Void, Void, Boolean>() { @Override protected Boolean doInBackground(Void... arg0) { // TODO Auto-generated method stub ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); // 若数据连接是打开的,则先关闭 if(simId > 0) { //如果数据连接关闭,则Settings.System.DEFAULT_SIM_NOT_SET值为-1 cm.setMobileDataEnabled(false); } return null; } @Override protected void onPostExecute(Boolean result) { // TODO Auto-generated method stub ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); if(FeatureOption.MTK_GEMINI_SUPPORT) { // 双卡 // 若数据连接一开始是打开的,关闭后,再打开相应的卡槽sim卡 if(simId > 0) { SIMInfo simInfo = SIMInfo.getSIMInfoById(SoundRecorder.this, simId); if(simInfo != null){ int slotId = simInfo.mSlot; boolean isEnable = cm.getMobileDataEnabledGemini(slotId); android.util.Log.d("yangjunddd", "isEnable =" + isEnable); cm.setMobileDataEnabledGemini(slotId); } } else { // 若数据连接是关闭的,则打开卡槽1的sim卡 cm.setMobileDataEnabled(true); } } else {// 单卡 cm.setMobileDataEnabled(true); } <span style="white-space:pre"> </span>super.onPostExecute(result); }.execute();
相关文章推荐
- android 关于网络连接之传输数据节省电量1
- android 关于网络连接之传输数据节省电量2
- 求救一个关于commons-httpclient组件在网络连接过程中的速度问题,好奇怪啊。。。
- 关于连接SQLSERVER2005数据出现Net Authenticated权限问题
- 关于IBM无线网络连接后会不定时自动断开的解决方案
- 【网络】关于运输层中TCP协议的三次握手连接和四次握手连接释放过程简述
- 数据库——关于网络服务名、SERVICE_NAME、域名(db_domain)、数据库名、数据库实例名
- 关于服务器端数据访问(1) 连接、命令和数据集
- 关于虚拟机上网---(一)几种网络连接方式介绍
- 推荐几本书,关于智能、生命、网络以及数据分析
- sim300通过DNS连接网络发送数据
- 关于“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决
- 关于数据的连接
- 关于windows mobile5 设备连接数据线的网络问题
- 关于使用SOCKET发送数据时“目标积极积极拒绝,无法连接”错误的原因分析
- 关于远程桌面出现:“由于数据加密错误,这个会话将结束。请重新连接到远程计算机。”
- 关于VS2005 数据连接错误的解决方法
- CDMA 无线数据模块网络连接程序的设计与实现
- 关于IBM无线网络连接后会不定时自动断开的解决方案