2010-12-28 1 views
0

Я пытаюсь найти этот код в Интернете ... он должен показать тост за событие OutComing, используя BroadcastReceiver, но на моей htc-татуировке с Android 1.6 он не работает (это не «т показать любой тост)Android: Тост при вызове OutComing

public class HFBroadcastOutComingRecevier extends BroadcastReceiver{ 
@Override 
public void onReceive(Context context, Intent intent) { 

    Toast.makeText(context, "Phone Event", Toast.LENGTH_SHORT).show(); 

    Bundle bundle = intent.getExtras(); 
    if(null == bundle) 
      return; 
    String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 
    String info = "Detect Calls sample application\nOutgoing number: " + phonenumber; 
     Toast.makeText(context, info, Toast.LENGTH_LONG).show(); 
} 
} 

Естественно я уже зарегистрировал BroadcastReceiver на моем Manifest как:

<receiver android:name=".HFBroadcastIncomingRecevier"> 
    <intent-filter> 
    <action android:name="android.intent.action.PHONE_STATE" /> 
    </intent-filter> 
    </receiver> 

и с этого разрешения:

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

Любая идея?

+0

Из того, что я вижу, есть недостающие части моего вопроса, так что это приемник в манифесте: <приемник андроид: «HFBroadcastIncomingRecevier» имени => <намеренного фильтр> \t <действие андроид: имя = "android.intent.action.PHONE_STATE" /> И это то права: <использует-разрешение андроида: имя = "android.permission.PROCESS_OUTGOING_CALLS" /> Skatephone

+0

. они сейчас здесь. Не забудьте использовать значок фигурных скобок над полем редактирования, чтобы улучшить форматирование вашего кода. –

+0

Вы вызвали registerreceiver()? – Psypher

ответ

0

Изменить Намерение фильтр ACTION_NEW_OUTGOING_CALL

<receiver android:name=".YourClassName" android:exported="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
    </intent-filter> 
</receiver> 

И если это не работает также реализовать фильтр намерений в вашем OnReceive

public void onReceive(Context context, Intent intent) 
{ 
    String mAction = intent.getAction(); 
    if(!mAction.equals("android.provider.Telephony.SMS_RECEIVED")) 
     return; 
    Toast.makeText(context, "Intent Received", Toast.LENGTH_LONG).show(); 

}

Это для входящего изменения сбще это соответственно и example here

+0

Я пробовал, но не работает то же самое – Skatephone

+0

не работает то же самое :( – Skatephone

+0

Я дал ссылку на учебник, вы пробовали это – ingsaurabh