

{"id":77264,"date":"2020-05-01T14:22:27","date_gmt":"2020-05-01T08:52:27","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=77264"},"modified":"2021-02-25T16:06:19","modified_gmt":"2021-02-25T10:36:19","slug":"android-telephonymanager","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/","title":{"rendered":"Android Telephony and Telephony Manager Implementation"},"content":{"rendered":"<h2>What is Android Telephony?<\/h2>\n<p><strong>Android Telephony<\/strong> framework provides us the functionalities of the mobile. It gives us information about functionalities like calls, SMS, MMS, network, data services, IMEI number, and so on.<\/p>\n<p>For better understanding, you can consider Dialer, Browser, Sim App toolkit, Broadcast receivers, and so on.<\/p>\n<h3>Architecture of Android Telephony<\/h3>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77709\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg\" alt=\"Android Telephony\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony-520x272.jpg 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/p>\n<p>Android Telephony architecture works in 4 layers that are :<\/p>\n<ol>\n<li><strong>Communication Processor<\/strong><\/li>\n<li><strong>Radio Interface Layer (RIL)<\/strong><\/li>\n<li><strong>Framework Services<\/strong><\/li>\n<li><strong>Applications<\/strong><\/li>\n<\/ol>\n<p>Let us try to understand them briefly one by one :<\/p>\n<h4><strong>1. Communication Processor<\/strong><\/h4>\n<p>It is an input\/output processor to distribute and collect data from a number of remote terminals. It is a specialized processor designed to communicate with the data communication network.<\/p>\n<h4><strong>2. Radio Interface Layer<\/strong><\/h4>\n<p>It is a bridge between the hardware and Android phone framework services. Rather we say, it is a protocol stack for Telephone. It has two main components that are:<\/p>\n<ul>\n<li><strong>RIL Daemon<\/strong>&#8211; It starts when the android system starts. It reads the system properties to find a library that is to be used for Vendor RIL.<\/li>\n<li><strong>Vendor RIL<\/strong>&#8211; It is also known as RIL Driver. It can be understood as a library that is specific to each modem.<\/li>\n<\/ul>\n<h4><strong>3. Framework Services<\/strong><\/h4>\n<p>The telephony Framework starts and initializes along with the system. All the queries by Application API are directed to RIL using these services.<\/p>\n<h4><strong>4. Application<\/strong><\/h4>\n<p>These are the Application UI related to telephony such as Dialer, SMS, MMS, Call tracker, etc. These applications start with the android system boot up. These are tied with framework services of telephony.<\/p>\n<p>Android Telephony Framework consists of two types of packages that are:<\/p>\n<p><strong>1. Internal Telephony Packages:<\/strong> This is generally the used for default telephony app.apk.<br \/>\n<strong>2.<\/strong> <strong>Open Technology Packages:<\/strong> This is for third-party apps.<\/p>\n<p>These are 4 layers of Android Telephony<\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Android-Telephony-Framework.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77710\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Android-Telephony-Framework.jpg\" alt=\"TelephonyManager\" width=\"399\" height=\"790\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Android-Telephony-Framework.jpg 399w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Android-Telephony-Framework-76x150.jpg 76w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Android-Telephony-Framework-152x300.jpg 152w\" sizes=\"auto, (max-width: 399px) 100vw, 399px\" \/><\/a><\/strong><\/p>\n<h3>Implementation of Android Telephony<\/h3>\n<p>We will now implement it in<a href=\"https:\/\/data-flair.training\/blogs\/installing-android-studio\/\"><em><strong> Android Studio <\/strong><\/em><\/a>using the following steps:<br \/>\n<strong>1.<\/strong>\u00a0At first, create a new project and name it.<br \/>\n<strong>2.<\/strong> Now, open the layout file, and define the following:<\/p>\n<p>Open the <strong>main_activity.xml<\/strong> file &#8211;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n\r\n&lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n   xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n   android:layout_width=\"match_parent\"\r\n   android:layout_height=\"match_parent\"\r\n   android:label=\"Telephony\"\r\n   android:paddingLeft=\"1dp\"\r\n   android:paddingTop=\"1dp\"\r\n   android:paddingRight=\"1dp\"\r\n   android:paddingBottom=\"1dp\"\r\n   tools:context=\".MainActivity\"&gt;\r\n\r\n   &lt;TextView\r\n       android:id=\"@+id\/textView\"\r\n       android:layout_width=\"wrap_content\"\r\n       android:layout_height=\"wrap_content\"\r\n       android:layout_alignParentLeft=\"true\"\r\n       android:layout_alignParentTop=\"true\"\r\n       android:layout_marginLeft=\"30dp\"\r\n       android:layout_marginTop=\"150dp\"\r\n       android:fontFamily=\"adamina\"\r\n       android:text=\"Mobile Details:\"\r\n       android:textSize=\"20dp\" \/&gt;\r\n\r\n&lt;\/RelativeLayout&gt;<\/pre>\n<p><strong>3.<\/strong> Now open the <strong>MainActivity.java<\/strong> file and write the following code there:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">package com.DataFlair.androidtelephony;\r\n\r\nimport android.app.Activity;\r\nimport android.content.Context;\r\nimport android.os.Bundle;\r\nimport android.telephony.TelephonyManager;\r\nimport android.widget.TextView;\r\n\r\npublic class MainActivity extends Activity {\r\npackage com.DataFlair.androidtelephony;\r\n\r\nimport android.app.Activity;\r\nimport android.content.Context;\r\nimport android.os.Bundle;\r\nimport android.telephony.TelephonyManager;\r\nimport android.widget.TextView;\r\n\r\npublic class MainActivity extends Activity {\r\n   TextView tv;\r\n\r\n   @Override\r\n   protected void onCreate(Bundle savedInstanceState) {\r\n       super.onCreate(savedInstanceState);\r\n       setContentView(R.layout.activity_main);\r\n\r\n       tv = findViewById(R.id.textView);\r\n\r\n\r\n       \/\/instance of TelephonyManager\r\n       TelephonyManager tele_man = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);\r\n\r\n       String nwcountryISO =        tele_man.getNetworkCountryIso();\r\n       String SIMCountryISO = tele_man.getSimCountryIso();\r\n\r\n       String PhoneType = \"\"; \/\/ it'll hold the type of phone i.e CDMA \/ GSM\/ None\r\n       int phoneType = tele_man.getPhoneType();\r\n\r\n       switch (phoneType) {\r\n           case (TelephonyManager.PHONE_TYPE_CDMA):\r\n               PhoneType = \"CDMA\";\r\n               break;\r\n           case (TelephonyManager.PHONE_TYPE_GSM):\r\n               PhoneType = \"GSM\";\r\n               break;\r\n           case (TelephonyManager.PHONE_TYPE_NONE):\r\n               PhoneType = \"NONE\";\r\n               break;\r\n       }\r\n\r\n       \/\/ true or false for roaming or not\r\n       boolean checkRoaming = tele_man.isNetworkRoaming();\r\n\r\n       String data = \"Your Mobile Details are enlisted below: \\n\";\r\n       data += \"\\n Network Country ISO is - \" + nwcountryISO;\r\n       data += \"\\n SIM Country ISO is - \" + SIMCountryISO;\r\n       data += \"\\n Network type is - \" + PhoneType;\r\n       data += \"\\n Roaming on is - \" + checkRoaming;\r\n       \/\/Now we'll display the information\r\n       tv.setText(data);\r\n   }\r\n\r\n\r\n}<\/pre>\n<p><strong>4. <\/strong>Now we will write the following code in the <strong>Manifest.xml file<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;manifest xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n   package=\"com.DataFlair.androidtelephony\"\r\n   android:versionCode=\"1\"\r\n   android:versionName=\"1.0\"&gt;\r\n\r\n   &lt;uses-sdk android:targetSdkVersion=\"17\" \/&gt;\r\n\r\n   &lt;uses-permission android:name=\"android.permission.READ_PHONE_STATE\" \/&gt;\r\n\r\n   &lt;application\r\n       android:allowBackup=\"true\"\r\n       android:icon=\"@drawable\/ic_launcher_background\"\r\n       android:label=\"@string\/app_name\"\r\n       android:paddingLeft=\"1dp\"\r\n       android:paddingTop=\"1dp\"\r\n       android:paddingRight=\"1dp\"\r\n       android:paddingBottom=\"1dp\"\r\n       android:theme=\"@style\/AppTheme\"&gt;\r\n       &lt;activity\r\n<b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/b>android:name=\"com.DataFlair.androidtelephony.MainActivity\"\r\n           android:label=\"@string\/app_name\"&gt;\r\n           &lt;intent-filter&gt;\r\n               &lt;action android:name=\"android.intent.action.MAIN\" \/&gt;\r\n               &lt;category android:name=\"android.intent.category.LAUNCHER\" \/&gt;\r\n           &lt;\/intent-filter&gt;\r\n       &lt;\/activity&gt;\r\n       &lt;meta-data\r\n           android:name=\"preloaded_fonts\"\r\n           android:resource=\"@array\/preloaded_fonts\" \/&gt;\r\n   &lt;\/application&gt;\r\n\r\n&lt;\/manifest&gt;\r\n\r\n<\/pre>\n<p><strong>5.<\/strong> Now we will RUN the application and following would be the Output.<a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/03\/Android-Telephony.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-77271 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/03\/Android-Telephony.png\" alt=\"android telephony output\" width=\"300\" height=\"533\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/03\/Android-Telephony.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/03\/Android-Telephony-84x150.png 84w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/03\/Android-Telephony-169x300.png 169w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>In this <strong>DataFlair Android tutorial<\/strong>, we went through the Android Telephony and Android TelephonyManager. We also saw Telephony architecture, framework and learned the layers that it has. We also implemented it in our Application.<\/p>\n<p><strong>Now it is your turn to implement it. We will catch up with you in the next article. Meanwhile let us know feedback in the comment section.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is Android Telephony? Android Telephony framework provides us the functionalities of the mobile. It gives us information about functionalities like calls, SMS, MMS, network, data services, IMEI number, and so on. For better&#46;&#46;&#46;<\/p>\n","protected":false},"author":7,"featured_media":77709,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18722],"tags":[22222,22223,22226,22224,22225],"class_list":["post-77264","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android-telephony","tag-android-telephony-framework","tag-android-telephony-manager","tag-what-is-android-telephony","tag-what-is-telephony-in-android"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Telephony and Telephony Manager Implementation - DataFlair<\/title>\n<meta name=\"description\" content=\"Android Telephony - What is Android telephony, architecture of telephony in Android, Implementation of TelephonyManager in Android\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Telephony and Telephony Manager Implementation - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Android Telephony - What is Android telephony, architecture of telephony in Android, Implementation of TelephonyManager in Android\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-01T08:52:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-25T10:36:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"802\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Telephony and Telephony Manager Implementation - DataFlair","description":"Android Telephony - What is Android telephony, architecture of telephony in Android, Implementation of TelephonyManager in Android","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/","og_locale":"en_US","og_type":"article","og_title":"Android Telephony and Telephony Manager Implementation - DataFlair","og_description":"Android Telephony - What is Android telephony, architecture of telephony in Android, Implementation of TelephonyManager in Android","og_url":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-05-01T08:52:27+00:00","article_modified_time":"2021-02-25T10:36:19+00:00","og_image":[{"width":802,"height":420,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd"},"headline":"Android Telephony and Telephony Manager Implementation","datePublished":"2020-05-01T08:52:27+00:00","dateModified":"2021-02-25T10:36:19+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/"},"wordCount":433,"commentCount":2,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg","keywords":["Android Telephony","android telephony framework","android telephony manager","What is Android telephony","what is telephony in android"],"articleSection":["Android Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/","url":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/","name":"Android Telephony and Telephony Manager Implementation - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg","datePublished":"2020-05-01T08:52:27+00:00","dateModified":"2021-02-25T10:36:19+00:00","description":"Android Telephony - What is Android telephony, architecture of telephony in Android, Implementation of TelephonyManager in Android","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/android-telephonymanager\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/04\/Architecture-of-Android-Telephony.jpg","width":802,"height":420,"caption":"Android Telephony"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/android-telephonymanager\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Android Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/android\/"},{"@type":"ListItem","position":3,"name":"Android Telephony and Telephony Manager Implementation"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team specializes in creating clear, actionable content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Backed by industry expertise, we make learning easy and career-oriented for beginners and pros alike.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam3\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/77264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=77264"}],"version-history":[{"count":9,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/77264\/revisions"}],"predecessor-version":[{"id":77712,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/77264\/revisions\/77712"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/77709"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=77264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=77264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=77264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}