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

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

监听的广播是:

    <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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 我这模型写的不对吗?为什么lingo解出来的下面影子价格这一溜少一个变量
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波