{"id":2561,"date":"2017-05-09T19:07:01","date_gmt":"2017-05-09T19:07:01","guid":{"rendered":"http:\/\/webartdevelopers.com\/?p=2561"},"modified":"2017-05-09T19:07:01","modified_gmt":"2017-05-09T19:07:01","slug":"how-to-use-telephonymanager-services-in-android","status":"publish","type":"post","link":"https:\/\/webartdevelopers.com\/blog\/how-to-use-telephonymanager-services-in-android\/","title":{"rendered":"How to Use TelephonyManager Services in Android"},"content":{"rendered":"<p>In this tutorial how to use TelephonyManager Services in Android Application is shown.<\/p>\n<p>Telephony Manager provides access of information about the telephony services on the device.<\/p>\n<p>Applications can use the methods in this class to determine telephony services and states,as well as to access some types of subscriber information.<\/p>\n<p>Applications can also register a listener to receive notification of telephony state changes.<\/p>\n<p>You do not instantiate this class directly, instead, you retrieve a reference to an instance through Context.getSystemService(Context.TELEPHONY_SERVICE);<\/p>\n<p>To work with TelephonyManager and to read the phone details we need to add this permission statement in AndroidManifest.xml<\/p>\n<p>&lt;uses-permission android:name=&#8221;android.permission.READ_PHONE_STATE&#8221;\/&gt;<\/p>\n<p>Code:<\/p>\n<p>activity_main.xml<\/p>\n<p>&lt;RelativeLayout xmlns:android=&#8221;http:\/\/schemas.android.com\/apk\/res\/android&#8221;<br \/>\nxmlns:tools=&#8221;http:\/\/schemas.android.com\/tools&#8221;<br \/>\nandroid:layout_width=&#8221;match_parent&#8221;<br \/>\nandroid:layout_height=&#8221;match_parent&#8221;<br \/>\nandroid:paddingBottom=&#8221;@dimen\/activity_vertical_margin&#8221;<br \/>\nandroid:paddingLeft=&#8221;@dimen\/activity_horizontal_margin&#8221;<br \/>\nandroid:paddingRight=&#8221;@dimen\/activity_horizontal_margin&#8221;<br \/>\nandroid:paddingTop=&#8221;@dimen\/activity_vertical_margin&#8221;<br \/>\ntools:context=&#8221;.MainActivity&#8221; &gt;<\/p>\n<p>&lt;Button<br \/>\nandroid:id=&#8221;@+id\/button1&#8243;<br \/>\nandroid:layout_width=&#8221;wrap_content&#8221;<br \/>\nandroid:layout_height=&#8221;wrap_content&#8221;<br \/>\nandroid:layout_alignParentTop=&#8221;true&#8221;<br \/>\nandroid:layout_centerHorizontal=&#8221;true&#8221;<br \/>\nandroid:layout_marginTop=&#8221;76dp&#8221;<br \/>\nandroid:onClick=&#8221;onSubmit&#8221;<br \/>\nandroid:text=&#8221;Get Info&#8221; \/&gt;<\/p>\n<p>&lt;TextView<br \/>\nandroid:id=&#8221;@+id\/info&#8221;<br \/>\nandroid:layout_width=&#8221;wrap_content&#8221;<br \/>\nandroid:layout_height=&#8221;wrap_content&#8221;<br \/>\nandroid:layout_below=&#8221;@+id\/button1&#8243;<br \/>\nandroid:layout_centerHorizontal=&#8221;true&#8221;<br \/>\nandroid:layout_marginTop=&#8221;47dp&#8221;<br \/>\nandroid:text=&#8221;Mobile Information&#8221; \/&gt;<\/p>\n<p>&lt;\/RelativeLayout&gt;<\/p>\n<p>MainActivity.java<\/p>\n<p>package com.example.demo;<\/p>\n<p>import android.os.Bundle;<br \/>\nimport android.app.Activity;<br \/>\nimport android.content.Context;<br \/>\nimport android.telephony.TelephonyManager;<br \/>\nimport android.view.Menu;<br \/>\nimport android.view.View;<br \/>\nimport android.widget.TextView;<\/p>\n<p>public class MainActivity extends Activity{<\/p>\n<p>TextView tv;<\/p>\n<p>@Override<br \/>\nprotected void onCreate(Bundle savedInstanceState) {<br \/>\nsuper.onCreate(savedInstanceState);<br \/>\nsetContentView(R.layout.activity_main);<br \/>\ntv=(TextView)findViewById(R.id.info);<br \/>\n}<\/p>\n<p>public void onSubmit(View v)<br \/>\n{<br \/>\nTelephonyManager tm=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);<br \/>\nint callstate=tm.getCallState();<br \/>\nString callstat=&#8221;&#8221;;<br \/>\nswitch(callstate)<br \/>\n{<br \/>\ncase TelephonyManager.CALL_STATE_IDLE:<br \/>\ncallstat=&#8221;Call State: Phone is idle\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.CALL_STATE_OFFHOOK:<br \/>\ncallstat=&#8221;Call State: Phone is in use\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.CALL_STATE_RINGING:<br \/>\ncallstat=&#8221;Call State: Phone is ringing\\n&#8221;;<br \/>\nbreak;<br \/>\n}<br \/>\nString opname=&#8221;\\nOperator ID:&#8221;+&#8221; &#8220;+tm.getNetworkOperator();<br \/>\nopname=opname+&#8221;\\nOperator Name:&#8221;+&#8221; &#8220;+tm.getNetworkOperatorName();<\/p>\n<p>int phoneType=tm.getPhoneType();<br \/>\nString ptype=&#8221;&#8221;;<br \/>\nswitch(phoneType)<br \/>\n{<br \/>\ncase TelephonyManager.PHONE_TYPE_CDMA:<br \/>\nptype=&#8221;\\nPhone Type: CDMA\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.PHONE_TYPE_GSM:<br \/>\nptype=&#8221;\\nPhone Type: GSM\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.PHONE_TYPE_SIP:<br \/>\nptype=&#8221;\\nPhone Type: SIP\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.PHONE_TYPE_NONE:<br \/>\nptype=&#8221;\\nPhone Type: NONE\\n&#8221;;<br \/>\nbreak;<br \/>\n}<\/p>\n<p>boolean isRoaming=tm.isNetworkRoaming();<br \/>\nString pDetails=&#8221;&#8221;;<br \/>\nif(isRoaming)<br \/>\n{<br \/>\npDetails=&#8221;Roaming : Yes\\n&#8221;;<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\npDetails=&#8221;Roaming : No\\n&#8221;;<br \/>\n}<\/p>\n<p>int sim=tm.getSimState();<br \/>\nString sstate=&#8221;&#8221;;<br \/>\nswitch(sim)<br \/>\n{<br \/>\ncase TelephonyManager.SIM_STATE_ABSENT:<br \/>\nsstate=&#8221;Sim State: Absent\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.SIM_STATE_NETWORK_LOCKED:<br \/>\nsstate=&#8221;Sim State: Network Locked\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.SIM_STATE_PIN_REQUIRED:<br \/>\nsstate=&#8221;Sim State: Pin Required\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.SIM_STATE_PUK_REQUIRED:<br \/>\nsstate=&#8221;Sim State: Puk Required\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.SIM_STATE_READY:<br \/>\nsstate=&#8221;Sim State: Ready\\n&#8221;;<br \/>\nbreak;<br \/>\ncase TelephonyManager.SIM_STATE_UNKNOWN:<br \/>\nsstate=&#8221;Sim State: Unknown\\n&#8221;;<br \/>\nbreak;<br \/>\n}<br \/>\ntv.setText(callstat+opname+ptype+pDetails+sstate);<br \/>\n}<\/p>\n<p>@Override<br \/>\npublic boolean onCreateOptionsMenu(Menu menu) {<br \/>\n\/\/Inflate the menu; this adds items to the action bar if it is present.<br \/>\ngetMenuInflater().inflate(R.menu.main, menu);<br \/>\nreturn true;<br \/>\n}<br \/>\n}<\/p>\n<p>AndroidManifest.xml<\/p>\n<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br \/>\n&lt;manifest xmlns:android=&#8221;http:\/\/schemas.android.com\/apk\/res\/android&#8221;<br \/>\npackage=&#8221;com.example.demo&#8221;<br \/>\nandroid:versionCode=&#8221;1&#8243;<br \/>\nandroid:versionName=&#8221;1.0&#8243; &gt;<\/p>\n<p>&lt;uses-sdk<br \/>\nandroid:minSdkVersion=&#8221;8&#8243;<br \/>\nandroid:targetSdkVersion=&#8221;17&#8243; \/&gt;<br \/>\n&lt;uses-permission android:name=&#8221;android.permission.READ_PHONE_STATE&#8221;\/&gt;<\/p>\n<p>&lt;application<br \/>\nandroid:allowBackup=&#8221;true&#8221;<br \/>\nandroid:icon=&#8221;@drawable\/ic_launcher&#8221;<br \/>\nandroid:label=&#8221;@string\/app_name&#8221;<br \/>\nandroid:theme=&#8221;@style\/AppTheme&#8221; &gt;<br \/>\n&lt;activity<br \/>\nandroid:name=&#8221;com.example.demo.MainActivity&#8221;<br \/>\nandroid:label=&#8221;@string\/app_name&#8221; &gt;<br \/>\n&lt;intent-filter&gt;<br \/>\n&lt;action android:name=&#8221;android.intent.action.MAIN&#8221; \/&gt;<\/p>\n<p>&lt;category android:name=&#8221;android.intent.category.LAUNCHER&#8221; \/&gt;<br \/>\n&lt;\/intent-filter&gt;<br \/>\n&lt;\/activity&gt;<br \/>\n&lt;\/application&gt;<\/p>\n<p>&lt;\/manifest&gt;<\/p>\n<p><a href=\"https:\/\/youtu.be\/a1G3SjYTKHM\">https:\/\/youtu.be\/a1G3SjYTKHM<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"In this tutorial how to use TelephonyManager Services in Android Application is shown. Telephony Manager provides access of information about the telephony services on the device. Applications can use the methods in this class to determine telephony services and states,as well as to access some types of subscriber information. Applications can also register a listener to receive notification of telephony state changes. You do not instantiate this class directly, instead, you retrieve a reference to an instance through Context.getSystemService(Context.TELEPHONY_SERVICE); To work with TelephonyManager and to read the phone details we need to add this permission statement in AndroidManifest.xml &lt;uses-permission android:name=&#8221;android.permission.READ_PHONE_STATE&#8221;\/&gt; Code: activity_main.xml &lt;RelativeLayout xmlns:android=&#8221;http:\/\/schemas.android.com\/apk\/res\/android&#8221; xmlns:tools=&#8221;http:\/\/schemas.android.com\/tools&#8221; android:layout_width=&#8221;match_parent&#8221; android:layout_height=&#8221;match_parent&#8221; android:paddingBottom=&#8221;@dimen\/activity_vertical_margin&#8221; android:paddingLeft=&#8221;@dimen\/activity_horizontal_margin&#8221; android:paddingRight=&#8221;@dimen\/activity_horizontal_margin&#8221; android:paddingTop=&#8221;@dimen\/activity_vertical_margin&#8221; tools:context=&#8221;.MainActivity&#8221; &gt; &lt;Button android:id=&#8221;@+id\/button1&#8243; android:layout_width=&#8221;wrap_content&#8221; android:layout_height=&#8221;wrap_content&#8221; android:layout_alignParentTop=&#8221;true&#8221; android:layout_centerHorizontal=&#8221;true&#8221; android:layout_marginTop=&#8221;76dp&#8221; <!-- AddThis Advanced Settings generic via filter on get_the_excerpt -->","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62],"tags":[121],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/posts\/2561"}],"collection":[{"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/comments?post=2561"}],"version-history":[{"count":2,"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/posts\/2561\/revisions"}],"predecessor-version":[{"id":2563,"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/posts\/2561\/revisions\/2563"}],"wp:attachment":[{"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/media?parent=2561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/categories?post=2561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webartdevelopers.com\/blog\/wp-json\/wp\/v2\/tags?post=2561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}