如何在android中阻止调用

时间:2009-07-05 05:52:06

标签: android phone-call incoming-call callblocking

我想阻止几个号码的来电,因为我想写一个我自己的应用程序。 那么我应该使用哪些API?

基本上我希望在来电时收到通知,我想比较数字,如果它是我要阻止的,我想要切断电话或将其静音,或者如果可能的话将其静音并记录下来。

5 个答案:

答案 0 :(得分:64)

OMG !!!是的,我们可以做到! 经过长达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);

所有想要开发其呼叫控制软件的数百人都访问this start point

有一个项目。并且有重要的评论(和学分)

简要说明:复制aidl文件,添加清单权限,复制粘贴源以进行电话管理)))

为您提供更多信息。 AT命令只有在你扎根的情况下才能发送。你可以杀死系统进程并发送命令,但你需要重新启动才能让你的手机接收和发送电话=)))

我非常讨厌=)现在我的Shake2MuteCall会得到更新!

答案 1 :(得分:5)

这是可能的,您不需要自己编码。

如果incomingNumber等于空字符串,只需将振铃器音量设置为零并将振动设置为无。多数民众赞成......

它刚刚为您完成了Android Market的Nostalk应用程序。试一试......

答案 2 :(得分:3)

您只需将联系人中的特定号码重定向到语音邮件即可。这已经得到了支持。

否则我想“联系人”的文档将是一个开始寻找的好地方。

答案 3 :(得分:3)

在android-N中,此功能包含在其中。检查{N}的Number-blocking更新

  

Android N现在支持平台中的数字阻止并提供了一个   框架API,让服务提供商维护一个阻塞号码列表。   默认的SMS应用程序,默认的手机应用程序和提供商应用程序可以读取   来自并写入阻止号码列表。该列表无法访问   到其他应用程序。

的优点是:

  1. 在通话中阻止的号码也会在文字
  2. 上被屏蔽
  3. 阻止的号码可以通过重置和设备持续存在 备份&恢复功能
  4. 多个应用可以使用相同的阻止号码列表
  5. 有关详细信息,请参阅android.provider.BlockedNumberContract

    更新现有项目。

    要针对 Android N平台编译您的应用,您需要使用 Java 8开发工具包(JDK 8),并且为了使用某些工具< strong> 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'
         ...
      }
      ...
    }
    

答案 4 :(得分:0)

您可以通过听电话事件来做到这一点。您可以通过将BroadcastReceiver设置为PHONE_STATE和NEW_OUTGOING_CALL来实现。您在这里找到电话号码。

然后,当您决定结束通话时,这会有些棘手,因为只有在Android P上,它才能保证正常工作。选中here