Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否可以告知我发送了活动意图,但未注册活动以使其启动_Android_Android Intent_Android Activity - Fatal编程技术网

Android 是否可以告知我发送了活动意图,但未注册活动以使其启动

Android 是否可以告知我发送了活动意图,但未注册活动以使其启动,android,android-intent,android-activity,Android,Android Intent,Android Activity,我需要知道某个意图(在我的情况下,ACTION\u CALL和ACTION\u CALL\u PRIVILEGED在用户或应用程序拨打电话时被调用)何时发送,而没有注册我的活动来处理它 我不想干扰对该意图的正常处理,也就是说,应该处理该意图的活动仍然应该以通常的方式处理它(在我的例子中是OutgoingCallBroadcaster) 我读到一条建议,放弃行动调用\u PRIVILEGED意图并发布另一个,但我想避免它。此外,我不想将某个活动用于操作调用并发出另一个,因为它将作为选项出现在意图选

我需要知道某个意图(在我的情况下,
ACTION\u CALL
ACTION\u CALL\u PRIVILEGED
在用户或应用程序拨打电话时被调用)何时发送,而没有注册我的活动来处理它

我不想干扰对该意图的正常处理,也就是说,应该处理该意图的活动仍然应该以通常的方式处理它(在我的例子中是
OutgoingCallBroadcaster

我读到一条建议,放弃
行动调用\u PRIVILEGED
意图并发布另一个,但我想避免它。此外,我不想将某个活动用于
操作调用
并发出另一个,因为它将作为选项出现在意图选择器中,我希望它对用户透明并始终有效

对于核心逻辑,也不建议使用
ActivityManager
类对象建议,如
getRecentTasks
方法文档中所述

请告诉我这在安卓系统中是否可行,如果可行,如何实现

谢谢,
阿米泰不,这是不可能的。如果可能的话,它将允许我编写一个应用程序,在用户不知情的情况下监控用户的行为。动作调用是启动
活动的
意图
。当然,你可以截取这个,但这显然不是你想要做的

在“呼叫”过程中发送广播
Intent
s。您可以监视这些,但必须注册才能收听它们。既然你表示你不想注册任何听众,那你就太倒霉了


这是一件好事,否则人们就可以编写一个“NastyWare”应用程序。

非常感谢您的回答,但是我只是试图避免一个无限循环,当我使用新的呼出呼叫拦截用户的呼叫时,询问用户是否想通过我们的电话卡拨打,中止它并发送一个带有修改号码的新呼叫(例如Prefixer)。如果另一个应用程序也使用此机制(如CSipSimple或Sipdroid),则可能会导致无限循环。如果我能区分这两种意图,我可以防止这种情况发生,但你是对的,这是不安全的。因此,如果你删除关于我写“NastyWare”的部分,我将不胜感激,因为这不是真的,我只是不知道这个安全问题。我已经更改了我的答案文本,以免暗示你正在写“NastyWare”.我不太理解无限循环的问题。有两种方法可以处理此问题:1)中止呼叫,使用新号码拨打新电话。当你再次截获电话时,你可以认出要拨打的号码是你的,只需把它传下去。2) 与其中止通话,不如修改号码,让广播链继续。将使用您修改的号码拨打电话。感谢您的编辑:)。我使用的是第一种方式(我需要给出一个提示),实际上忽略了下一个调用。然而,CSipSimple随后会捕捉广播并执行完全相同的操作(当选择“使用移动”选项时),我会再次被呼叫,而不知道CSipSimple启动了呼叫,而不是用户。现在,如果用户选择保留相同的号码,CSipSimple知道如何再次忽略它,下一次我也会这样做,然后拨打电话。但是,如果困惑的用户选择再次修改它(访问号+orig+“#”),CSipSimple将再次出现,以此类推。