{"id":573,"date":"2020-06-15T11:22:56","date_gmt":"2020-06-15T03:22:56","guid":{"rendered":"https:\/\/badgameshow.com\/fly\/?p=573"},"modified":"2020-06-15T11:23:38","modified_gmt":"2020-06-15T03:23:38","slug":"android-%e8%ae%80%e5%8f%96%e7%b0%a1%e8%a8%8a%e9%a9%97%e8%ad%89%e7%a2%bc-%e5%b8%b6%e5%85%a5app%e4%b8%ad","status":"publish","type":"post","link":"https:\/\/badgameshow.com\/fly\/android-%e8%ae%80%e5%8f%96%e7%b0%a1%e8%a8%8a%e9%a9%97%e8%ad%89%e7%a2%bc-%e5%b8%b6%e5%85%a5app%e4%b8%ad\/","title":{"rendered":"Android \u8b80\u53d6\u7c21\u8a0a\u9a57\u8b49\u78bc \u5e36\u5165APP\u4e2d"},"content":{"rendered":"<h4>1.\u589e\u52a0\u63a5\u6536\u7c21\u8a0a\u8207\u8b80\u53d6\u7c21\u8a0a\u6b0a\u9650<\/h4>\n<pre><code class=\"language-XML line-numbers\">&lt;uses-permission android:name=\"android.permission.RECEIVE_SMS\" \/&gt;\n&lt;uses-permission android:name=\"android.permission.READ_SMS\" \/&gt;\n<\/code><\/pre>\n<h4>2.\u6aa2\u67e5\u662f\u5426\u7528\u6236\u78ba\u8a8d\u6b0a\u9650<\/h4>\n<pre><code class=\"language-Kotlin line-numbers\">if (ActivityCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {\n     ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.RECEIVE_SMS, Manifest.permission.READ_SMS), REQUEST_SMS_CODE)\n} else {\n     readSMSMessage()\n}\n\noverride fun onRequestPermissionsResult(requestCode: Int, permissions: Array&lt;out String&gt;, grantResults: IntArray) {\n    super.onRequestPermissionsResult(requestCode, permissions, grantResults)\n    if (requestCode == REQUEST_SMS_CODE &amp;&amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {\n         readSMSMessage()\n     }\n}\n<\/code><\/pre>\n<h4>3.\u64b0\u5bebBroadCastReceiver<\/h4>\n<pre><code class=\"language-Kotlin line-numbers\">import android.content.BroadcastReceiver\nimport android.content.Context\nimport android.content.Intent\nimport android.telephony.SmsMessage\nimport java.util.regex.Pattern\n\nclass SMSReceiver : BroadcastReceiver() {\n    override fun onReceive(context: Context?, intent: Intent?) {\n        val pdus = intent?.extras?.get(\"pdus\") as Array&lt;*&gt;\n        pdus.forEach {\n            val sms = SmsMessage.createFromPdu(it as ByteArray)\n            val body = sms.messageBody\n\n            val patter = Pattern.compile(\"\\\\d{4}\")\n            val verification = patter.matcher(body)\n\n            if (verification.find()) {\n                val code = verification.group(0)\n                val smsIntent = Intent(\"sms\")\n                smsIntent.putExtra(\"code\", code)\n                context?.sendBroadcast(smsIntent)\n            }\n        }\n    }\n}\n<\/code><\/pre>\n<h4>4.\u5728AndroidManifest\u8072\u660ereceiver<\/h4>\n<pre><code class=\"language-XML line-numbers\">&lt;receiver android:name=\".SMSReceiver\"&gt;\n      &lt;intent-filter android:priority=\"1000\"&gt;\n           &lt;action android:name=\"android.provider.Telephony.SMS_RECEIVED\" \/&gt;\n      &lt;\/intent-filter&gt;\n&lt;\/receiver&gt;\n<\/code><\/pre>\n<h4>5.\u5c07\u9a57\u8b49\u78bc\u585e\u5165\u5230EditText\u4e2d<\/h4>\n<pre><code class=\"language-Kotlin line-numbers\">private fun readSMSMessage() {\n      val receiver = object : BroadcastReceiver() {\n          override fun onReceive(context: Context?, intent: Intent?) {\n              editTextTextPersonName.setText(intent?.getStringExtra(\"code\"))\n          }\n      }\n\n      val filter = IntentFilter(\"sms\")\n      registerReceiver(receiver, filter)\n}\n<\/code><\/pre>\n<h4>6.\u6548\u679c\u5c55\u793a<\/h4>\n<p><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/06\/\u8b80\u53d6\u7c21\u8a0a\u9a57\u8b49\u78bc-\u5e36\u5165APP\u4e2d.gif\" alt=\"\" \/><\/p>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>1.\u589e\u52a0\u63a5\u6536\u7c21\u8a0a\u8207\u8b80\u53d6\u7c21\u8a0a\u6b0a\u9650 &lt;uses-permission android:name=&#8221;andro &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[5],"tags":[13,87,86],"class_list":["post-573","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-captcha","tag-sms"],"_links":{"self":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/comments?post=573"}],"version-history":[{"count":1,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/573\/revisions"}],"predecessor-version":[{"id":575,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/573\/revisions\/575"}],"wp:attachment":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/media?parent=573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/categories?post=573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/tags?post=573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}