2015-08-14 4 views
0

Я разрабатываю приложение для 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 на тот же вопрос задан до тех пор .. Но ничего не решить мою проблему ..

Если кто-то предложить решение, Виль быть более полезным ...

+0

Вы определили свой приемник в своем манифесте? – Rajesh

+0

Только nw отредактировал d сообщение. Извините за неудобства .. – Jeeva

+0

Вы дали правильный путь для своего класса MyReceiver в манифесте приемников, то есть «com.mypackage.MyReceiver» – Gautam

ответ

0

В вашем закрывающем теге фильтра есть опечатка. Вы использовали </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> 
+0

Извините бр .... Это не помогите ... все еще продолжает ту же проблему ... – Jeeva

+0

Я скорректировал d typo in d post .... – Jeeva

Смежные вопросы