Android telephony相關
 
 
slotid(phoneid)是指卡槽:雙卡機器的卡槽1值為0,卡槽2值為1,依次類推。
 
subid:SubscriptionId(Subscription Identifier)。subid是數據庫telephony.db的表siminfo的主鍵遞增項,其中telephony.db在"/data /user_de/0/com.android.providers.telephony/databases"下。subid的值從1開始,每插入一個新卡,subId的值就會加1。插入雙卡后數據庫中就會有subid值為1和2的兩個數據條目,拔卡插卡交換卡槽后,數據庫并不會增加新項,只有插入一張新的sim卡才會增加一條id為3的數據條目。
 
- SubscriptionManager及其相關方法
SubscriptionManager為第三方app層使用,用于:
 1). 獲取和設置當前雙卡設置(如當前默認撥號卡);
 2). 進行slotid和subId轉換等;
 3). 獲取當前的卡信息SubscriptionInfo。
 
SubscriptionManager //frameworks/base/telephony/java/android/telephony/SubscriptionManager.java
1). 獲取SubscriptionManager對象public static SubscriptionManager from
(Context context
);//SubscriptionManager mSubscrMgr 
= SubscriptionManager.from
(mContext
);//get Manager
2). 第三方app獲取slot和subIdpublic int getDefaultDataPhoneId
()  默認數據slotIdpublic static int getDefaultDataSubscriptionId
() 默認數據subIdpublic int getDefaultSmsPhoneId
()  默認短信slotIdpublic static int getDefaultSmsSubscriptionId
() 默認短信subIdpublic static int getDefaultVoicePhoneId
()  默認通話slotIdpublic static int getDefaultVoiceSubscriptionId
() 默認通話subId上述三個都返回-1的話使用public static int getDefaultSubscriptionId
() 獲取默認subId
3). slotid和subId轉換public static int getSlotIndex
(int subId
)public static int getPhoneId
(int subId
)public static int
[] getSubId
(int slotIndex
)4). 第三方app獲取SubscriptionInfopublic SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex
(int slotIndex
) //根據卡槽獲取對應的SubscriptionInfopublic SubscriptionInfo getActiveSubscriptionInfo
(int subId
) //根據subId獲取對應的SubscriptionInfo
 
07-09 
16:55:50.569 D/RILJ    
( 1975): 
[4242]> REQUEST_SET_PREFERRED_NETWORK_TYPE 
: 8 [SUB1
]
07-09 
16:55:50.656 D/RILJ    
( 1975): 
[4242]< REQUEST_SET_PREFERRED_NETWORK_TYPE  
[SUB1
]07-09 
16:55:50.737 D/RILJ    
( 1975): 
[4243]> REQUEST_SET_PREFERRED_NETWORK_TYPE 
: 0 [SUB0
]
07-09 
16:55:50.790 D/RILJ    
( 1975): 
[4243]< REQUEST_SET_PREFERRED_NETWORK_TYPE  
[SUB0
]07-09 
16:56:00.313 D/RILJ    
( 1975): 
[4283]< OPERATOR 
{China Telecom, China Telecom, 
46003} [SUB1
]
07-09 
16:56:00.361 D/RILJ    
( 1975): 
[4288]< OPERATOR 
{CMCC, CMCC, 
46000} [SUB0
]網絡模式顯示Log:
MobileNetworkSettings: 
[0] updateBody: isLteOnCdma 
= true phoneSubId 
= 2 phoneId 
= 0 currentPrimarySlot= 0 dataPhoneId 
= 1 NW mode is: 
27 isCmccCard: 
false開機怎么設置DDS:主卡數據卡
Settings的SimDialogActivity中調用SubscriptionManager.setDefaultDataSubId
(),進而調用SubscriptionController.setDefaultDataSubId
(int subId
)modem設置首選網絡類型
//Set the modem network modemPhone.setPreferredNetworkType
(modemNetworkMode, mHandler.obtainMessage
(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE
));Log關鍵字:
updateBodyAdvancedFields
handleSimLoaded 
 
https://www.cnblogs.com/yz123/p/12022781.html
                            總結
                            
                                以上是生活随笔為你收集整理的Android telephony相关的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。