源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android如何设置小区广播默认信道(50与60并支持双卡)

  • 时间:2020-06-22 16:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android如何设置小区广播默认信道(50与60并支持双卡)
要求设置默认信道50与60,并支持双卡。 在PhoneApp.java文件中增加code: 在文件开头部分import 包:
[u]复制代码[/u] 代码如下:
import android.provider.Telephony; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import android.content.ContentValues; import android.database.Cursor;
2.在文件开头部分增加变量:
[u]复制代码[/u] 代码如下:
private final BroadcastReceiver mSmsReadyReceiver = new SmsReadyBroadcastReceiver(); private static final int MESSAGE_SET_STATE = 33; private static final int MESSAGE_SET_CONFIG = 32; private static final String KEYID = "_id"; private static final String NAME = "name"; private static final String NUMBER = "number"; private static final String ENABLE = "enable"; private static final Uri CHANNEL_URI = Uri.parse("content://cb/channel"); private static final Uri CHANNEL_URI1 = Uri.parse("content://cb/channel1");
3.在mHandeler中增加Case:
[u]复制代码[/u] 代码如下:
case MESSAGE_SET_STATE: handleSetStateResponse(msg); break;
4.在oncreate函数中注册cellbroadcastRecivier:
[u]复制代码[/u] 代码如下:
IntentFilter smsReadyIntentFilter = new IntentFilter("android.provider.Telephony.SMS_STATE_CHANGED"); registerReceiver(mSmsReadyReceiver,smsReadyIntentFilter);
5.在类中增加函数:
[u]复制代码[/u] 代码如下:
private class SmsReadyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){ Log.e("kpp","Sms Ready!!"); String action = intent.getAction(); Log.e("kpp","Sms Ready action ="+action); if (action.equals("android.provider.Telephony.SMS_STATE_CHANGED")) { int extra = intent.getIntExtra("simId",0); boolean isReady = intent.getBooleanExtra("ready",false); Log.e("kpp","Sms Ready extra ="+extra); Log.e("kpp","Sms Ready isReady ="+isReady); if(!isReady){ return; } Message msg; msg = mHandler.obtainMessage(MESSAGE_SET_STATE, extra, MESSAGE_SET_STATE,null); if (FeatureOption.MTK_GEMINI_SUPPORT == true) { ((GeminiPhone)phone).activateCellBroadcastSmsGemini(0,msg, extra); } else { phone.activateCellBroadcastSms(0,msg); } } } } private void handleSetStateResponse(Message msg) { int simId = msg.arg1; if (msg.arg2 == MESSAGE_SET_STATE) { AsyncResult ar = (AsyncResult) msg.obj; if (ar == null) { Log.i(LOG_TAG, "handleSetStateResponse,ar is null"); return; } if (ar.exception != null) { if (DBG) Log.d(LOG_TAG, "handleSetStateResponse: ar.exception="+ ar.exception); } else { Log.i(LOG_TAG, "handleSetStateResponse: re get ok"); addCustomChanneltoList(PhoneConstants.GEMINI_SIM_1,"Channel1",50); addCustomChanneltoList(PhoneConstants.GEMINI_SIM_1,"Channel2",60); addCustomChanneltoList(PhoneConstants.GEMINI_SIM_2,"Channel1",50); addCustomChanneltoList(PhoneConstants.GEMINI_SIM_2,"Channel2",60); } } } private void addCustomChanneltoList(int mSimId,String channelName,int channelNum){ Log.d(LOG_TAG, "addCustomChanneltoList: mSimId=" + mSimId + ", channelName= " + channelName + ", channelNum= " + channelNum); if(queryChannelFromDatabase(mSimId,channelName,channelNum)){ SmsBroadcastConfigInfo[] objectList = new SmsBroadcastConfigInfo[1]; objectList[0] = new SmsBroadcastConfigInfo(channelNum,channelNum, -1, -1, true); Message msg1 = mHandler.obtainMessage(MESSAGE_SET_CONFIG, 0,MESSAGE_SET_CONFIG, null); if (FeatureOption.MTK_GEMINI_SUPPORT == true) { ((GeminiPhone)phone).setCellBroadcastSmsConfigGemini(objectList, objectList, msg1, mSimId); } else { phone.setCellBroadcastSmsConfig(objectList, objectList, msg1); } } } private boolean queryChannelFromDatabase(int mSimId,String channelName,int channelNum){ // ClearChannel(); Log.d(LOG_TAG, "queryChannelFromDatabase: mSimId=" + mSimId + ", channelName= " + channelName + ", channelNum= " + channelNum); String[] projection = new String[] { KEYID, NAME, NUMBER, ENABLE }; String SELECTION = "(" + NUMBER + " = " + channelNum + ")"; Cursor cursor = null; if(mSimId==PhoneConstants.GEMINI_SIM_1){ cursor = this.getContentResolver().query(CHANNEL_URI,projection, SELECTION, null, null); }else if(mSimId==PhoneConstants.GEMINI_SIM_2){ cursor = this.getContentResolver().query(CHANNEL_URI1,projection, SELECTION, null, null); } if (cursor.getCount() == 0){ ContentValues values = new ContentValues(); values.put(NAME,channelName); values.put(NUMBER, channelNum); values.put(ENABLE, true); try { if(mSimId==PhoneConstants.GEMINI_SIM_1){ this.getContentResolver().insert(CHANNEL_URI, values); }else if(mSimId==PhoneConstants.GEMINI_SIM_2){ this.getContentResolver().insert(CHANNEL_URI1, values); } } catch (Exception e){ return false; } } cursor.close(); return true; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部