Приемник входящего вызова не работает

Я разрабатываю приложение для Android для обнаружения пропущенных вызовов, и я прикрепил все свои коды ниже.

AndroidManifest.xml:

<uses-permission  android:name="android.permission.READ_PHONE_STATE"></uses-permission>


 <receiver android:name="com.mypackage.MyReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter></receiver>

MyReceiver.java:

public class MyReceiver extends BroadcastReceiver{

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

{

            String state=intent.getStringExtra(TelephonyManager.EXTRA_STATE);

            Toast.makeText(context,"Incoming call", Toast.LENGTH_SHORT).show();

            if(state==null)
            {
                 Toast.makeText(context,"Null", Toast.LENGTH_SHORT).show();

                 return;
            }

            if(state.equals(TelephonyManager.EXTRA_STATE_RINGING))
             {
                 Toast.makeText(context,"Ringing", Toast.LENGTH_SHORT).show();

             }

            if(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
             {
                Toast.makeText(context,"Call received", Toast.LENGTH_SHORT).show();                                      
             }

            if(state.equals(TelephonyManager.EXTRA_STATE_IDLE))
             {
                 Toast.makeText(context,"Idle", Toast.LENGTH_SHORT).show();

            }


}}

Кроме того, у меня есть два действия в моем проекте (одно основное действие). Я думаю, что код идеален и чист. Но это не работает. Мой приемник не обнаруживает входящие вызовы, поскольку Toast не отображается при получении вызова. Это означает, что метод onReceive() вообще не вызывается при получении входящего вызова.

Я уже пробовал различные решения, предложенные в Stackoverflow, на тот же вопрос, заданный вскоре. Но моя проблема не решена.

Если кто-то предложит решение, это будет более полезно...


person Jeeva    schedule 14.08.2015    source источник
comment
Вы определили получателя в своем манифесте?   -  person Rajesh    schedule 14.08.2015
comment
Только что отредактировал пост. Извините за неудобства..   -  person Jeeva    schedule 14.08.2015
comment
Вы указали правильный путь для своего класса MyReceiver в манифесте приемников, т.е. com.mypackage.MyReceiver   -  person Gautam    schedule 14.08.2015
comment
Да .. я дал правильный путь ....   -  person Jeeva    schedule 14.08.2015


Ответы (1)


В закрывающем теге фильтра намерений опечатка. Вы использовали </intent-filter/>, где должно быть </intent-filter>. Это дополнительный / для закрытия тега. Измененный код -

    <uses-permission  android:name="android.permission.READ_PHONE_STATE"></uses-permission>


    <receiver android:name="com.mypackage.MyReceiver" android:enabled="true">
    <intent-filter>
    <action android:name="android.intent.action.PHONE_STATE" />
    </intent-filter>
    </receiver>
person Gautam    schedule 14.08.2015