最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android如何設(shè)置小區(qū)廣播默認(rèn)信道(50與60并支持雙卡)

 更新時(shí)間:2013年06月02日 15:28:27   作者:  
置小區(qū)廣播默認(rèn)信道50與60,并支持雙卡主要是印度市場(chǎng),具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈
要求設(shè)置默認(rèn)信道50與60,并支持雙卡。

在PhoneApp.java文件中增加code:

在文件開頭部分import 包:
復(fù)制代碼 代碼如下:

import android.provider.Telephony;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
import android.content.ContentValues;
import android.database.Cursor;

2.在文件開頭部分增加變量:
復(fù)制代碼 代碼如下:

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:
復(fù)制代碼 代碼如下:

case MESSAGE_SET_STATE:
handleSetStateResponse(msg);
break;

4.在oncreate函數(shù)中注冊(cè)cellbroadcastRecivier:
復(fù)制代碼 代碼如下:

IntentFilter smsReadyIntentFilter = new IntentFilter("android.provider.Telephony.SMS_STATE_CHANGED");
registerReceiver(mSmsReadyReceiver,smsReadyIntentFilter);

5.在類中增加函數(shù):
復(fù)制代碼 代碼如下:

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;
}

相關(guān)文章

  • Flutter軟鍵盤的原理淺析

    Flutter軟鍵盤的原理淺析

    大家應(yīng)該都知道目前Flutter官方是沒有自定義鍵盤的解決方案,下面這篇文章主要給大家介紹了關(guān)于Flutter軟鍵盤原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • Android編程中Perferences的用法實(shí)例分析

    Android編程中Perferences的用法實(shí)例分析

    這篇文章主要介紹了Android編程中Perferences的用法,以實(shí)例形式較為詳細(xì)的分析了配置文件preferences.xml的功能、定義及使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Android dumpsys簡(jiǎn)介

    Android dumpsys簡(jiǎn)介

    本文詳細(xì)介紹了Android系統(tǒng)中的dumpsys工具,包括其原理、使用方法、環(huán)境要求和相關(guān)概念,dumpsys是一個(gè)強(qiáng)大的系統(tǒng)診斷工具,可以幫助開發(fā)者了解系統(tǒng)服務(wù)狀態(tài),分析問題,并設(shè)計(jì)新功能,感興趣的朋友一起看看吧
    2025-03-03
  • Android中ImageCropper矩形、圓形 裁剪框的實(shí)現(xiàn)方法

    Android中ImageCropper矩形、圓形 裁剪框的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Android中ImageCropper矩形、圓形 裁剪框的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2018-07-07
  • Android實(shí)現(xiàn)Gesture手勢(shì)識(shí)別用法分析

    Android實(shí)現(xiàn)Gesture手勢(shì)識(shí)別用法分析

    這篇文章主要介紹了Android實(shí)現(xiàn)Gesture手勢(shì)識(shí)別用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android基于Gesture實(shí)現(xiàn)手勢(shì)識(shí)別的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-09-09
  • Android之用PopupWindow實(shí)現(xiàn)彈出菜單的方法詳解

    Android之用PopupWindow實(shí)現(xiàn)彈出菜單的方法詳解

    本篇文章是對(duì)在Android中,用PopupWindow實(shí)現(xiàn)彈出菜單的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例

    Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例

    本篇文章主要介紹了Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Android  LayoutInflater.inflate源碼分析

    Android LayoutInflater.inflate源碼分析

    這篇文章主要介紹了Android LayoutInflater.inflate源碼分析的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Android實(shí)現(xiàn)京東App分類頁面效果

    Android實(shí)現(xiàn)京東App分類頁面效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)京東App分類頁面效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Android view繪制流程詳解

    Android view繪制流程詳解

    View 的繪制是在 ViewRoot 的 performTraversals() 開始的,它歷經(jīng) measure(測(cè)量), layout(布局), draw(繪制) 三個(gè)流程將 View 顯示在屏幕上。
    2021-05-05

最新評(píng)論

广饶县| 白河县| 青海省| 辉南县| 鄂州市| 昭觉县| 建湖县| 峨眉山市| 龙陵县| 乐安县| 临泽县| 玉溪市| 武威市| 东乌珠穆沁旗| 景东| 钟祥市| 宾川县| 上虞市| 汕头市| 竹溪县| 福州市| 饶阳县| 方城县| 东阿县| 登封市| 乐昌市| 辰溪县| 政和县| 应用必备| 商都县| 会东县| 油尖旺区| 苗栗县| 灌南县| SHOW| 徐闻县| 昌乐县| 商都县| 宿州市| 汕尾市| 三穗县|