Блокировка конкретных номеров (звонки и смс) в андроид
Я создаю приложение, в котором пользователь может выбрать любой номер для блокировки. Я думаю, что правильный алгоритм: когда звонит телефон, функция проверяет, есть ли номер в списке или нет (проверка в базе данных), и если есть, отклоняет этот вызов.
я нашел этот код в интернете, но он не работает, я должен вызвать функцию onReceive в моей деятельности? что я должен написать о основной деятельности?
вот код:
public class IncomingCallReceiver extends BroadcastReceiver {
private ITelephony telephonyService;
private String blacklistednumber = "+458664455";
@Override
public void onReceive(Context context, Intent intent) {
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService = (ITelephony) m.invoke(tm);
Bundle bundle = intent.getExtras();
String phoneNumber = bundle.getString("incoming_number");
Log.e("INCOMING", phoneNumber);
if ((phoneNumber != null) && phoneNumber.equals(blacklistednumber)) {
telephonyService.silenceRinger();
telephonyService.endCall();
Log.e("HANG UP", phoneNumber);
}
} catch (Exception e) {
e.printStackTrace();
}
}
интерфейс:
public interface ITelephony {
boolean endCall();
void answerRingingCall();
void silenceRinger();
}
я также добавил этот код ниже, чтобы манифест
<receiver android:name="IncomingCallReceiver" >
</receiver>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permissionandroid:name="android.permission.PROCESS_INCOMING_CALLS"/>
я что-то пропустил?