Android Telephony InternalsWord格式文档下载.docx
《Android Telephony InternalsWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《Android Telephony InternalsWord格式文档下载.docx(13页珍藏版)》请在冰点文库上搜索。
![Android Telephony InternalsWord格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/973387d0-441c-4920-b21a-72051fd89e4d/973387d0-441c-4920-b21a-72051fd89e4d1.gif)
PhoneStateListener
classesrelyonthistocommunicatewithPhoneApp.The
ServiceManager
classisalsoused.
Tomarshalldataforremotemethods,thepackageincludesAIDLfiles.Forinstance,thefollowingAIDLcomesfrom
IPhoneStateListener.aidl:
onewayinterfaceIPhoneStateListener{
voidonServiceStateChanged(inServiceStateserviceState);
voidonSignalStrengthChanged(intasu);
voidonMessageWaitingIndicatorChanged(booleanmwi);
voidonCallForwardingIndicatorChanged(booleancfi);
//weusebundlehereinsteadofCellLocationsoitcangettherightsubclass
voidonCellLocationChanged(inBundlelocation);
voidonCallStateChanged(intstate,StringincomingNumber);
voidonDataConnectionStateChanged(intstate);
voidonDataActivity(intdirection);
}
15.2.2.Theandroid.internal.telephonyPackage
ThispackagecontainstheclassesandinterfacesPhoneAppusestoprovideservicestootherapplicationsthatwanttostartphonecalls,andclassesthatdefineanAPItotheRIL.
PhoneApp,likeallpartsofAndroid,istheoreticallyreplaceable.IfyourapplicationneedstomodifytheclassesusedbyPhoneApp,yourapplicationwillprobablyhavetoreplaceormodifyPhoneApp,andshouldprovidethesameservicestootherapplications,usingtheclassesinthispackage.
ThedescriptionoftheseclassesshouldhelpyouunderstandhowAndroidinterfacestoamobileradio,andthecapabilitiesthatareexposed—andnotexposed—by
PhoneApp
tootherapplications.Thisisalargeandcomplexpackage,andacompleteunderstandingwillrequirereadingtheAndroidsourcecode.Thesedescriptionswillhelpyoufindwheretostartforyourpurposes:
ATParseEx
Extends
RuntimeExceptionandisthrownbymethodsofthe
ATResponseParser
class.
ATResponseParser
Thisclassparses
partoftheATcommandsyntaxusedtocommunicatewiththemobileradiohardwareinamobilehandset.Thisis,infact,acommandsyntaxverymuchliketheATcommandsyntaxusedbymodems,astandarddescribedinthe3GPPdocumentnumberTS27.007andrelatedspecifications.Thisprotocolforcontrollingmobileradiosiswidelyused.
Call
Thisclassisan
abstractbaseclass.Otherclassesuseitasabasisforobjectsthatrepresentphonecallsandthestateofthosecalls.
CallerInfo
Thisclass
holdsinformationaboutthepartythatoriginatedanincomingcall.ThisclassstartswithcallerIDinformationfromthemobilenetworkinterfaceandlooksupotherinformationaboutacallerinthedatabaseofcontacts.
CallerInfoAsyncQuery
enablesasynchronousdatabasequeriesforinformationthatcouldbefoundaboutacallerbasedonthecallerIDinformation.
CallStateException
Theclass
extendsExceptionandisthrownbymethodsthatmaintaincallstateincaseswherestateisinconsistent.
Connection
isanabstractbaseclassusedbyotherclasses,andisabasisforobjectsthatrepresentconnectionsonthemobilenetworkandthestateoftheseconnections.
Connection
objectscanbeassociatedwitha
Call
object,buttheycanalsoexistindependently.ThedatainaConnection
objectcanbeespeciallyusefulindiagnosingthereasonacallfailed.
DefaultPhoneNotifier
implementsthePhoneNotifierinterfaceinordertoreceivenotificationsfroma
Phone
object.ItthenusestheAndroidservicesystemtocommunicatestatetoActivityinstancesthathaveregisteredtoreceivethosenotifications.Seethe
Handler
Mailbox
classesforinformationonhowtoreceivenotifications.
IPhoneStateListener
This
interfacedefinesthesignaturesofmethodsanapplicationimplementstoreceivenotificationofcallstatechange,andchangestoforwardingandmessage-waitingstates.
IPhoneSubInfo
Thisinterface
isusedtoobtainsubscriberinformation.
ITelephony
interfacedefinestheinter-processinterfaceusedinTelephonyManagertoenableapplicationstocommunicatewithPhoneApp.
ITelephonyRegistry
interfaceisthecallbackinterfacefromtheRILdaemon.
MmiCode
interfacedefinescallbacksrelatedto"
MMIcodes."
Thesearespecialnumbersausercandialandkeysequencesthatausercanenterduringacalltoaccess,control,andadministersupplementaryservices,suchascallwaiting,callhold,etc.MMIcodesandrelatedfunctionalityaredescribedinthe3GPPdocumentnumberTS22.030.
Phone
interfaceincludescallbacksandmethodsforaccessingthestateofamobilephone.
PhoneBase
classisanabstractbaseclassthatimplementsthePhoneinterface.
PhoneFactory
classcontainsmethodsusedtocreateinstancesofthe
GSMPhone
class,asubclassofthe
PhoneNotifier
specifiestheAPIatelephonyimplementationusestonotifyaphonestatelistenerofstatechanges.
PhoneStateIntentReceiver
classhandles
Intent
objectsthathaveintenttypesspecifiedinthe
TelephonyIntents
class.ThisclassenablesAndroidapplicationstousetheIntentssystemtoobtainphonestateinformation.
PhoneSubInfo
containsmethodsforobtaininginformationaboutamobileservicesubscriber,suchastheuniqueidentifyingnumberforthehandset(IMEI),theuniqueidentifyingnumberforthesubscriber(IMSI),theserialnumberoftheSIMcard,etc.
SimCard
interfacedefinestheAPIforaccessingtheSIMcard.
TelephonyIntents
definesconstantsforbroadcastintentsthathavesimilarfunctionalitytotheTelephonyManagerAPI.
TelephonyProperties
definestheconstantsusedwiththe
SystemProperties
classforsettingandgettingtelephony-relatedproperties.
TheseclassesarenotdocumentedintheAndroidSDKdocumentation,butthedescriptionshereshouldgiveyousomeunderstandingofthesourcecodefortheseclasses.
15.2.3.Theandroid.internal.telephony.gsmPackage
ManyoftheclassesandinterfacesintheprevioussectionaretypicalofaJavaAPIthatcanhavemultipleimplementations.TheimplementationsoftheAPIdefinedinthe
telephony.internal
packagecorrespondtoalibraryusedintheRIL.TobetterunderstandthisAPI,wewilllookatoneimplementationherethatsupportsGSM.
Thus,thissectiondelvesfurtherintothetelephonyinternalsofAndroid,lookingespeciallyathowtheinterfacesandabstractbaseclassesareimplementedandsubclassedtoenableaccesstothefunctionalityofGSMtelephony.AlthoughitmayseemthatspecificationssuchasTS27.007covermobiletelephonyingeneral,thislayerofAndroidactuallyhastoaccommodatevariationsinmobiletelephonystandards.InCDMAtelephony,forinstance,theSIMcardisanoptionalpartofthestandardandisrarelypresentinCDMAhandsets.Inthiscase,thepackagedescribedinthissectionwouldbereplacedbyaCDMA-orientedpackagewithasimilararchitecturalrelationshiptothehigher-levelclassesdescribedintheprevioussection.TheRILcodeisalsospecifictothetypeoftelephonyinthehandset.
AttheRILlayer,thedifferencesbetweenGSMandCDMAaremainlyoutsidethecorefunctionalityofmakingphonecalls,soyoumaybewonderingwhyalltheselayersandAPIsarenecessary.But,asthedescriptionoftheclassesspecifictocommunicatingwithaGSMRILwillshow,thereareplentyofdifferencesindetail,suchasSIMcards,thetypeofmobiledatanetwork,etc.Thesemakeitimpracticaltodesignauniversalinterfacetomobileradios,despitetheuseofastandardprotocolforcommunicatingwiththem:
AdnRecord
Thisclassisusedtoloadandstore
AbbreviatedDialingNumbers(ADNs)toandfromtheSIMcard.ADNsareshortnumbersusedforinformationcalls,emergencycalls,etc.
AdnRecordCache
Thisclasscaches
andenablesaccesstoADNs.
ApnSetting
holdsdataspecifyingtheaccesspointname(APN)andotherparametersforconnectingtoGeneralPacketRadioService(GPRS)and3Gmobiledatanetworks.ThismobiledatatechnologyisspecifictoGSMnetworks.
BaseCommands
ThisclassimplementstheCommandsInterfaceinterface,whichisusedthroughoutthe
GSM
telephonyclassestocommunicatewiththeGSMradio.
CallFailCause
interfacedefinesconstantsfordecodingfailurecausecodes.
CallForwardInfo
Thisclassholds
datathatcorrespondstotheparametersofacall-forwardingcommandtotheRIL.
CallTracker
mapsinformationfromtheRILtostatetransitionsforthe
GSMCall
CommandException
isanexceptionthrownwhentheRILreportsanerrorfromacommand.
CommandsInterface
definestheAPItotheGSMRIL.Thisinterfaceisimplementedbythe
BaseCommands
DataConnectionTracker
Thistracks
thestateofGPRSpacketdataprotocol(PDP)connections.ThistypeofconnectionisspecifictoGSMmobiledata.
DataLink
implementstheDataLinkInterfaceinterfaceandisusedinthe
PPPLink
class,whichmanagespointtopointprotocol(PPP)linksinGPRSnetworking.
DataLinkInterface
class