加了收短信广播权限以后接短信没有反应。

加了收短信广播权限以后接短信没有反应。

老师您好,我按照课程的代码写的,删除文件时候就正常执行广播类,信息可以正常打印。接短信就没反应,劳您费心看一下码有没有问题。

//主activity.

public class MainActivity extends AppCompatActivity {

   private TextBro textbro;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       textbro = new TextBro();
       IntentFilter filter = new IntentFilter();
       filter.addAction("android.provider.Telephony.SMS_RECEIVED");
       filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
       filter.addDataScheme("package");
       registerReceiver(textbro,filter);

   }

   @Override
   protected void onDestroy() {
       super.onDestroy();
       unregisterReceiver(textbro);
   }
}

//广播类

public class TextBro extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
        
       String SMS = intent.getAction();
       Log.e("TAG",SMS);

}

}

//manifest配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.messagels">
   <!--监听电话状态需要添加的权限-->
   <uses-permission android:name="android.permission.RECEIVE_SMS"/>
   <uses-permission android:name="android.permission.SEND_SMS"/>
   <uses-permission android:name="android.permission.READ_SMS"/>
   <application
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:roundIcon="@mipmap/ic_launcher_round"
       android:supportsRtl="true"
       android:theme="@style/AppTheme">
       <activity android:name=".MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
       <!--静态注册广播接收器        -->
       <receiver android:name=".Broadcasttools.TextBro">
       <!--短信监听。        -->
<!--            <intent-filter>-->
<!--                <action android:name="android.intent.action.AIRPLANE_MODE"/>-->

<!--                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>-->
<!--            </intent-filter>-->
       </receiver>

   </application>

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

http://img1.sycdn.imooc.com//climg/5ecf1a82091ee82305610298.jpg

 filter是且的关系,短信没有dataScheme,所以接收不到。另外即使改过来了,你的手机也不一定能收到短信的广播。短信属于危险权限,高版本被系统回收了。祝:学习愉快

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师