我想阻止来自几个号码的呼叫,为此,我想编写自己的应用程序。那么我应该使用哪些API?
基本上,我想在打来电话时得到通知,如果要阻止,我想比较号码,我想切断电话或将其静音,或者尽可能将其静音并记录下来。
我想阻止来自几个号码的呼叫,为此,我想编写自己的应用程序。那么我应该使用哪些API?
基本上,我想在打来电话时得到通知,如果要阻止,我想比较号码,我想切断电话或将其静音,或者尽可能将其静音并记录下来。
Answers:
我的天啊!!!是的,我们可以做到!经过24小时的认真调查和发现,我打算自杀。但是我发现了“新鲜”的解决方案!
// "cheat" with Java reflection to gain access to TelephonyManager's
// ITelephony getter
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony)m.invoke(tm);
所有想开发其呼叫控制软件的人都访问了这个起点
有一个项目。并且有重要的评论(和功劳)
简要地:复制辅助文件,添加清单的权限,复制粘贴源以进行电话管理)))
为您提供更多信息。只有植根后才能发送AT命令。比您可以杀死系统进程并发送命令之外,但您需要重新启动手机才能接收和发送呼叫=)))
我非常高兴=)现在我的Shake2MuteCall将得到更新!
这是可能的,您不需要自己编写代码。
如果incomingNumber等于空字符串,只需将铃声音量设置为零,将振动设置为无。而已 ...
刚刚使用Android Market的Nostalk应用程序为您完成了此操作。试一试...
在android-N中,此功能包含在其中。检查android N的号码拦截更新
Android N现在在平台中支持数字阻止功能,并提供了框架API,以使服务提供商可以维护阻止号码列表。默认的SMS应用程序,默认的电话应用程序和提供者应用程序可以读取和写入阻止号码列表。该列表无法被其他应用访问。
的优点是:
有关更多信息,请参见 android.provider.BlockedNumberContract
更新现有项目。
要针对Android N平台编译应用,您需要使用Java 8开发人员工具包(JDK 8),并且要在Android Studio 2.1中使用某些工具,您需要安装Java 8运行时环境(JRE 8)。
打开模块的build.gradle文件,并按如下所示更新值:
android {
compileSdkVersion 'android-N'
buildToolsVersion 24.0.0 rc1
...
defaultConfig {
minSdkVersion 'N'
targetSdkVersion 'N'
...
}
...
}
您可以通过收听电话事件来做到这一点。您可以通过将BroadcastReceiver设置为PHONE_STATE和NEW_OUTGOING_CALL来实现。您在这里找到电话号码。
然后,当您决定结束通话时,这会有些棘手,因为只有从Android P上,它才能保证正常工作。在这里检查。