撥號盤單雙卡切換顯示

現(xiàn)在很多手機都支持雙卡了,google原生,當我們插入雙卡且用戶未選擇默認呼叫SIM卡的時候,用戶外呼電話,會彈出一個對話框,讓用戶可以選擇使用哪張SIM卡進行呼叫。但是現(xiàn)在很多手機都會在這種情況下,顯示兩個外呼按鈕,以供用戶選擇使用哪張SIM卡進行呼叫,這樣的方式更加方便,直觀?,F(xiàn)在我們可以看看實現(xiàn)思路。


Screenshot_20170704-173325.png

Screenshot_20170704-173309.png

我們可以在DialpadFragment的onCreateViewf方法中添加以下判斷,當條件滿足的時候,我們改變布局使得撥號盤顯示兩個撥號按鈕。

private boolean isShowSelectPhone(){
        int count = getTelecomManager().getCallCapablePhoneAccounts().size();   //獲取能打電話的PhoneAccount數(shù)目。
        Log.d(TAG,"getSimState count:"+count);
        PhoneAccountHandle phoneAccountHandle = getTelecomManager().getUserSelectedOutgoingPhoneAccount();      //獲取用戶選擇的外呼PhoneAccountHandle
        if(count > 1 && phoneAccountHandle == null){       //當數(shù)目大于1,且用戶未選擇外呼PhoneAccountHandle,才顯示雙卡撥號按鈕
            return true;
        }else{
            return false;
        }
}

我們通過以下方法獲取運營商名稱:

List<PhoneAccountHandle> list = getTelecomManager().getCallCapablePhoneAccounts();
PhoneAccount phoneAccount = getTelecomManager().getPhoneAccount(list.get(0));
String label = phoneAccount .getLabel();

當用戶進行插拔sim卡的時候或者用戶設置默認外呼SIM卡的時候,我們就要改變布局,使得撥號盤按鈕進行相應的改變,這時候我們可以注冊廣播,對TelecomManagerEx.ACTION_PHONE_ACCOUNT_CHANGED和TelecomManagerEx.ACTION_DEFAULT_ACCOUNT_CHANGED進行監(jiān)聽,對應的代碼如下:

IntentFilter filter = new IntentFilter();
filter.addAction(TelecomManagerEx.ACTION_PHONE_ACCOUNT_CHANGED);
filter.addAction(TelecomManagerEx.ACTION_DEFAULT_ACCOUNT_CHANGED);
mContext.registerReceiver(mReceiver, filter);

在收到廣播的時候,我們調用isShowSelectPhone方法,之后進行相對應的變化。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容