我希望屏蔽来自几个号码的电话,因此我想要编写自己的应用程序。 那么我应该使用哪些API呢?
基本上,我希望在电话到来时收到通知,我想比较号码是否为我所要屏蔽的号码,我想挂断或静音电话,如果可能的话,还想将其静音并录音。
我希望屏蔽来自几个号码的电话,因此我想要编写自己的应用程序。 那么我应该使用哪些API呢?
基本上,我希望在电话到来时收到通知,我想比较号码是否为我所要屏蔽的号码,我想挂断或静音电话,如果可能的话,还想将其静音并录音。
天啊!!!是的,我们能做到!!!经过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);
成百上千的想要开发通话控制软件的人都会访问这个起点
有一个项目,还有一些重要的注释(和致谢)
简单地说:复制AIDL文件,将权限添加到清单中,复制-粘贴电信管理源代码 )))
更多的信息:只有当你已经root手机时才能发送AT命令。然后你可以杀掉系统进程并发送指令,但是你需要重新启动手机才能接收和发送电话呼叫 =)))
我很高兴 =) 现在我的Shake2MuteCall将得到更新!
Android N现在支持平台上的号码屏蔽,并提供框架API,使服务提供商可以维护阻止号码列表。默认SMS应用程序、默认电话应用程序和提供程序应用程序都可以从阻止的号码列表中读取和写入。该列表对其他应用程序不可访问。
其优点如下:
有关更多信息,请参见android.provider.BlockedNumberContract
。
更新现有项目。
要针对Android N平台编译您的应用程序,您需要使用Java 8 Developer Kit (JDK 8),并且为了在Android Studio 2.1中使用一些工具,您需要安装Java 8 Runtime Environment (JRE 8)。
打开您的模块的 build.gradle 文件,并按以下方式更新值:
android {
compileSdkVersion 'android-N'
buildToolsVersion 24.0.0 rc1
...
defaultConfig {
minSdkVersion 'N'
targetSdkVersion 'N'
...
}
...
}
这是可能的,而且你不需要自己编码。
只需将铃声音量设置为零,并将振动设置为无,如果incomingNumber等于空字符串。就这样...
使用Android Market中的应用程序Nostalk,这一切都已经为您完成了。试试看吧...
您可以通过监听电话事件来实现。您需要创建一个广播接收器来监听PHONE_STATE和NEW_OUTGOING_CALL事件,从中获取电话号码。
当您决定结束通话时,这有点棘手,因为只有在Android P及以上版本中才能保证正常工作。请参考此处。