加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

blackberry – 如何使来电静音

发布时间:2020-12-15 00:37:29 所属栏目:Java 来源:网络整理
导读:我正在尝试静音来电并阻止BlackBerry设备响铃.我尝试了Alert.setVolume(0)和一些EventInjector键,但这不起作用. 那么如何使来电静音? 解决方法 我对你的问题感到困惑,决定接受挑战.我试过不同的东西,包括 播放“静音”音频文件,希望重叠设备的响铃或占用媒
我正在尝试静音来电并阻止BlackBerry设备响铃.我尝试了Alert.setVolume(0)和一些EventInjector键,但这不起作用.

那么如何使来电静音?

解决方法

我对你的问题感到困惑,决定接受挑战.我试过不同的东西,包括

>播放“静音”音频文件,希望重叠设备的响铃或占用媒体播放器
>通过UiApplication.getUiApplication()黑客手机屏幕.getActiveScreen()
>注入键盘事件

最后,注入VOLUME UP键(VOLUME DOWN键也能正常工作)对我有用,并使设备在来电时静音.这种方法的缺点是有时设备在静音之前会振铃几分之一秒.

import net.rim.blackberry.api.phone.AbstractPhoneListener;
import net.rim.blackberry.api.phone.Phone;
import net.rim.device.api.system.Application;
import net.rim.device.api.system.EventInjector;
import net.rim.device.api.ui.Keypad;

class Muter extends AbstractPhoneListener {
    public void callIncoming(int callId) {          
        Thread muterThread = new Thread(new Runnable() {
            public void run() {
                EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN,(char) Keypad.KEY_VOLUME_UP,0));
                EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_UP,0));
            }
        });
        muterThread.setPriority(Thread.MAX_PRIORITY);
        muterThread.start();
    }
}

public class MuterApp extends Application {
    public static void main(String[] args){
        Phone.addPhoneListener(new Muter());
        new MyApp().enterEventDispatcher();
    }
}

以下也有效(使用以下代码替换callIncoming()方法中的Muter线程).

UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() {
                EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN,0));
            }
        });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读