我正在开发一个阻止来电的应用。目前,当来电到达设备时,它被阻止。但是在从被阻止的呼叫返回后,屏幕转到拨号呼叫屏幕,并显示一个对话框,提醒您有未接来电。
我想阻止来电,然后挂机时,屏幕就是主屏幕。我该如何实现这一目标?
我的第二个问题:阻止来电的权限是什么?如何将其添加到我的应用程序?我添加了“ApplicationPermissions.PERMISSION_IDLE_TIMER”但它没用。
EDIT1:
这是我的应用程序中的代码。
private void blockincomingcall(){
int master_volume= net.rim.device.api.system.Alert.getVolume(); //net.rim.device.api.notification.NotificationsManag er.getMasterNotificationVolume();
System.out.println("Master Volume "+master_volume);
net.rim.device.api.system.Alert.setVolume(0);
int alert_volume = Alert.getVolume();
Main.log("Master Volume after setting "+alert_volume);
int notifi_volume = NotificationsManager.getMasterNotificationVolume();
Main.log("Master Volume 1 after setting "+notifi_volume);
EventInjector.KeyCodeEvent ev1 = new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN, ((char) Keypad.KEY_END), KeypadListener.STATUS_ALT, 100);
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
EventInjector.invokeEvent(ev1);
EventInjector.invokeEvent(ev1);
net.rim.device.api.system.Alert.setVolume(master_volume);
//System.out.println("Master volume 2 "+master_volume);
requestBackground();
}
什么时候,它在os5.0上运行,可以阻止调用。但屏幕将转到拨号屏幕,并显示一个新的来电通知对话框。并且音量设置无效。它在OS 7.0和6.0上运行正常但对音量集没有影响。我该怎么办,谢谢
答案 0 :(得分:0)
这是一个很好的恶意软件,但无论如何:
对于#1您需要检测活动呼叫(使用PhoneListener
类)。 #2是最困难的一步,你将需要密钥注入才能完成它。这有点骇人听闻:
EventInjector.KeyCodeEvent ev = new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN, ((char)Keypad.KEY_END), KeypadListener.STATUS_ALT);
EventInjector.invokeEvent(ev);
#3点可以通过两种不同的方式完成:
PhoneListener
实施,然后致电<YourUiApplication>.requestForeground()
3.2:鉴于PhoneListener
中的代码在手机应用内部运行(这应该回答您的第二个问题),请致电:
UiApplication.getUiApplication()requestBackground();