我试图阻止来自特定号码的来电,我设法检测到来电及其号码。但是,我很难阻止呼叫。我浏览了我在这个网站和其他网站上找到的所有代码,我开始认为,由于新版本的android或每个设备的核心差异(我拥有LG4),这些代码可能无法工作。
再想一想,谁能解释一下在这个包中创建 ITelephony 的重要性:
package com.android.internal.telephony;
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
package com.darkmoonapps.telephony;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.widget.Toast;
import com.android.internal.telephony.ITelephony;
import java.lang.reflect.Method;
/**
* Created by Shai on 19/12/2017.
*/
public class incomingCalls extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ITelephony telephonyService;
try {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)){
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Method m = tm.getClass().getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(tm);
if ((number != null)) {
telephonyService.endCall(); …Run Code Online (Sandbox Code Playgroud) android ×1