Intent.ACTION_NEW_OUTGOING_CALL永远不会被抓住

时间:2016-04-05 08:26:33

标签: android broadcastreceiver

我有一个nexus 5版本6.0.1,当我试图赶上拨出电话我无法抓住它时,我在LG G4和nexus 5 6.0等其他设备上进行了测试,它运行正常,唯一的问题是我的设备。我附上我的清单和代码。 谢谢

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

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <service android:name=".EventsService" />
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- BroadCastReceivers-->


        <receiver android:name=".BroadCastReceivers.HardwareActionListener">
            <intent-filter>
                <action  android:name="android.intent.action.NEW_OUTGOING_CALL" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                <data android:scheme="package"/>
            </intent-filter>
        </receiver>

        <receiver android:name=".BroadCastReceivers.AppNotificationReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>

我的代码是:

public class HardwareActionListener extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        final String action = intent.getAction();
        Log.d(Constants.TAG,action);
        switch (action){

            case Intent.ACTION_NEW_OUTGOING_CALL:
                //HarwareManagementUtils.setBluetooth(true)
                Log.d(Constants.TAG,"calling ....");
                break;


        }
    }
}

0 个答案:

没有答案