Необходимо отключить услугу при входящем звонке и когда пользователь набирает номер - PullRequest
0 голосов
/ 08 мая 2011

Итак, у меня есть служба, которая работает в фоновом режиме (это супер секрет, поэтому я не могу сказать вам, что это такое :)), но мне нужно иметь возможность отключить ее, когда пользователь инициирует вызов или поступает вызов в. Пока что я проверил Intent.ACTION_ANSWER, но по какой-то причине мой приемник Broadcast никогда не обнаруживает его. Я также пытался использовать PhoneStateListener, но в своих заявлениях по делу я не понимаю, как что-либо сделать с моим сервисом. В каком контексте это PhoneStateListener?

Пример кода для моего BroadcastReceiver:

public void onReceive(Context context, Intent intent) {     
if (intent.getAction().equals(Intent.ACTION_ANSWER)) {
        phoneRinging = true;            
    }

Intent i = new Intent(context, MyService.class);        
    i.putExtra("phone", phoneRinging);
    context.startService(i);
}

Вот фрагмент для запуска службы через PhoneStateListener. Пример: startService(new Intent(---CONTEXT---, MySuperSecretService.class))

И получатель находится в манифесте:

<receiver android:name=".PhoneReceiver" android:enabled="true">
    <intent-filter>
        <action android:name="android.intent.action.ANSWER"></action>
    </intent-filter>
</receiver>

WTH входит в часть CONTEXT в этом утверждении, если я нахожусь в PhoneStateListener?

1 Ответ

0 голосов
/ 12 июня 2015

Пожалуйста, отметьте ACTION_PHONE_STATE_CHANGED вместо ACTION_ANSWER .ACTION_ANSWER не предназначен для трансляции входящего вызова.Это стандартное действие.

...