空享 2018-05-30 03:18 采纳率: 40%
浏览 1379
已结题

接受到了广播,但不能弹出提示和启动服务

监听的广播是:

    <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>

Manifest 代码:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.testbroadcastreceiver">

    <!--电话钻港台-->
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <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 android:priority="99999">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".MyService"/>

        <!--需要注意的是,监听广播往往需要添加响应的权限,监听外拨电话的声明如下,6.0以上需要动态申请权限:-->
        <receiver android:name=".MyBroadcastReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.PROCESS_OUTGOING_CALLS">
            <intent-filter android:priority="-1">
                <!--NEW_OUTGOING_CALL  监听外拨电话-->
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>

广播的代码:

 <receiver android:name=".MyBroadcastReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.PROCESS_OUTGOING_CALLS">
            <intent-filter android:priority="-1">
                <!--NEW_OUTGOING_CALL  监听外拨电话-->
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
        </receiver>

(注:广播的权限在开启应用程序时已经动态获取了)

广播类的主要代码:

 public void onReceive(Context context, Intent intent) {

        Log.i(TAG,"接收到了广播=============================================");
        //接受到了广播
        try {
            Toast.makeText(context,"接受到了广播",Toast.LENGTH_LONG).show();
            Intent intent1 = new Intent(context,MyService.class);
            context.startService(intent1);
            Log.i(TAG,"接收到了广播111"+context);
        }catch (Exception e){
            e.printStackTrace();
            Log.i(TAG,"接收到了广播2222");
        }

    }

服务类的主要代码:


    @Override
    public void onCreate() {
        super.onCreate();
        Toast.makeText(this,"收到了广播",Toast.LENGTH_LONG).show();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this,"收到了广播————————---",Toast.LENGTH_LONG).show();
        return super.onStartCommand(intent, flags, startId);
    }

打印的日志 :

 11-01 13:22:46.612 27292-27292/com.example.testbroadcastreceiver I/Test :MainActivity-->: 活动onPause()状态 ------
11-01 13:22:46.665 27292-27292/com.example.testbroadcastreceiver I/Test :MainActivity-->: 活动 onStop()------当一个Activity被另一个Activity完全覆盖时,被覆盖的Activity就会进入Stopped状态,此时它不再可见,但是跟Paused状态一样保持着其所有状态信息及其成员变量。 
11-01 13:22:53.860 27292-27292/com.example.testbroadcastreceiver I/Test :MyBroadcastReceiver-->: 接收到了广播=============================================
11-01 13:22:53.872 27292-27292/com.example.testbroadcastreceiver I/Test :MyBroadcastReceiver-->: 接收到了广播111android.app.ReceiverRestrictedContext@8412aff
11-01 13:24:04.562 27292-27305/com.example.testbroadcastreceiver I/IPCThreadState: Application
11-01 13:24:04.564 27292-27305/com.example.testbroadcastreceiver E/SchedPolicy: set_thread_freeze_state, freeze=1, pid=27292, num=15
  • 写回答

6条回答 默认 最新

  • qq_37854832 2018-05-30 03:32
    关注

    第二个信息有错误,好好看一下

    评论

报告相同问题?

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM