Я смотрел на BroadcastReceiver
и Activity
, и я не нашел подходящего режима для использования входящего номера, который у меня есть от BroadcastReceiver
в моем Activity
.Это код, который я использую для перехвата входящего номера и визуализации в Toast
:
public class CustomBroadcastReceiver extends BroadcastReceiver {
String ophoneNumber;
@Override
public void onReceive(Context context, Intent incoming) {
Bundle bundle = incoming.getExtras();
ophoneNumber= bundle.getString("incoming_number");
Toast.makeText(context, ophoneNumber, Toast.LENGTH_LONG).show();
}
}
Манифест:
<receiver android:name=".CustomBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
Моя проблема заключается в том, что мне нужно использоватьвходящий номер в Activity
, который работает, поэтому я также читал о возможности поместить BroadcastReceiver
в Activity
следующим образом:
public void monitorIncomingCalls(){
INcall = new BroadcastReceiver(){
public void onReceive(Context context, Intent intent) {
final Bundle extras = intent.getExtras();
if(intent.getAction().equalsTelephonyManager.ACTION_PHONE_STATE_CHANGED))
inphoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
}
};
registerReceiver(INcall, new IntentFilter(Intent.ACTION_ANSWER));
}
Но с этим у меня нетничего в переменной inphoneNumber, я думаю, потому что я не могу правильно зарегистрировать BroadcastReceiver
, потому что я пропускаю разрешение.Я не нашел в сети примера, который работает для того, что я хочу, и в основном вставляю переменную в мой Activity
номер, который мне звонит.