我想阻止几个号码的来电,因为我想写一个我自己的应用程序.那么我应该使用哪些API?
基本上我想在通话时收到通知,我想比较数字,如果它是我想阻止的,我想要切断电话或将其静音,或者如果可能的话将其静音并记录下来.
我正在写一个Android应用程序,我需要接听来电,做一些工作,然后结束通话.所有的谷歌搜索后,我能找到两种不同的方式来实现这一二者均不会与最新版本的Android的工作,特别是4.1果冻豆之后.
I.)使用广播接收器中的Java Reflection为"android.intent.action.PHONE_STATE"访问"com.android.internal.telephony.ITelephony".下面的示例代码可以在数百个相关帖子中找到:
public class PhoneCallReceiver extends BroadcastReceiver {
Context context = null;
private static final String TAG = "Phone call";
private ITelephony telephonyService;
@Override
public void onReceive(Context context, Intent intent) {
if (!intent.getAction().equals("android.intent.action.PHONE_STATE"))
return;
Log.v(TAG, "Receving....");
TelephonyManager telephony = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Log.v(TAG, "Get getTeleService...");
Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(telephony);
telephonyService.silenceRinger();
Log.v(TAG, "Answering Call now...");
telephonyService.answerRingingCall();
Log.v(TAG, "Call answered...");
//telephonyService.endCall();
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG,
"FATAL ERROR: could …Run Code Online (Sandbox Code Playgroud) 我想在android中拒绝传入,我从这些链接中看到了很多代码.
但是我仍然无法做到这一点,任何人都可以通过简单易行的步骤告诉我该怎么做?
我想实现一个用于阻止移动号码的应用程序,用于接收或发送呼叫和消息.在我的应用程序中,我在EditText框中输入手机号码然后我点击一个按钮来阻止用户输入的手机号码.
我已经实现了一个活动类,如下所示:
public class BlockNumberActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button)findViewById(R.id.block)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String mobileNumer = ((EditText)findViewById(R.id.mobileNum)).getText().toString();
//How to block entered mobileNumber
}
});
((Button)findViewById(R.id.unblock)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String mobileNumer = ((EditText)findViewById(R.id.mobileNum)).getText().toString();
//How to unblock entered mobileNumber
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我想我们可以使用BroadcastReceiver.但我对它没有更多的了解.请告诉我如何实现阻止或解锁移动号码.请任何人帮我.....
我不知道如何在android中以编程方式转发语音邮件?
我试图阻止来自特定号码的来电,我设法检测到来电及其号码。但是,我很难阻止呼叫。我浏览了我在这个网站和其他网站上找到的所有代码,我开始认为,由于新版本的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)