【展讯】关于卡的数据网络连接

来源:互联网 发布:c语言中的链表 编辑:程序博客网 时间:2024/05/23 20:00


工程模式下,输入暗骂“*983*123#”后,重启手机sim卡的数据网络连接(双卡单通)

展讯平台:

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>() {@Overrideprotected 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;}@Overrideprotected void onPostExecute(Boolean result) {// TODO Auto-generated method stubif(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是3final 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>() {@Overrideprotected Boolean doInBackground(Void... arg0) {// TODO Auto-generated method stubConnectivityManager cm =(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);// 若数据连接是打开的,则先关闭if(simId > 0) { //如果数据连接关闭,则Settings.System.DEFAULT_SIM_NOT_SET值为-1cm.setMobileDataEnabled(false);}return null;}@Overrideprotected void onPostExecute(Boolean result) {// TODO Auto-generated method stubConnectivityManager 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();





0 0
原创粉丝点击