如何靜默來電
回答
您won't be able to以編程方式禁用聲音(發現一些其他來源表示同樣的事情)。人們似乎想出的最佳解決方法是使用EventInjector
將手機的聲音配置文件更改爲無聲。
我很困惑你的問題,並決定接受挑戰。我通過UiApplication.getUiApplication().getActiveScreen()
- 玩起了「沉默」的音頻文件,希望能夠重疊設備的振鈴或佔用媒體播放器
- 黑客手機屏幕上不同的東西注入鍵盤事件
最後,注入VOLUME UP鍵(音量降低鍵也可以),爲我工作並且靜音設備在來電時響鈴。這種方法的缺點是,有時設備在靜音之前確實響了幾分之一秒。
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, (char) Keypad.KEY_VOLUME_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, (char) Keypad.KEY_VOLUME_UP, 0));
EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_UP, (char) Keypad.KEY_VOLUME_UP, 0));
}
});
感謝您的回覆。但我希望鈴聲在幾秒鐘後不再接到電話時關閉。你有任何線索嗎? – 2012-03-13 07:46:41
@FaridFarhat目前還不是。順便說一句,這不是幾秒鐘,但在某些情況下可能不到半秒鐘。在其他情況下,鈴聲立即消失。 – mrvincenzo 2012-03-13 08:05:55
一些黑莓手機有一個靜音鍵。你可以試試下面的想法:
public void callIncoming(int callId) {
if (KeyPad.hasMuteKey()) {
/* Inject KEY_SPEAKERPHONE event */
}
else {
/* Inject KEY_VOLUME_DOWN event N times, so that you get the mute effect */
}
}
我很新的這一切......但我想我還不如把我的2美分的價值......
我一直在試圖找到以編程方式更改配置文件設置...
我發現,雖然我們不能(但)更改配置文件設置,但我們可以更改我們正在使用的設置(更改正在使用的配置文件,我認爲) - 這是我在搜索信息時遇到的情況 - 儘管我應該將這個代碼歸功於alishaik786。
public final class LoadingScreen extends MainScreen implements FieldChangeListener
{
public LoadingScreen()
{
createGUI();
}
private void createGUI()
{
try
{
ApplicationManager.getApplicationManager().launch("net_rim_bb_profiles_app");
}
catch (Exception e)
{
//Exception
}
}
public void fieldChanged(Field field, int context)
{
}
}
- 1. 如何隱藏來電默認屏幕
- 2. 如何靜默連接?
- 3. Android上的來電顯示 - 如何抑制/延遲默認來電屏幕?
- 4. 如何靜默/靜默HTTPServer和BasicHTTPRequestHandler的stderr輸出?
- 5. 如何在Android 5中靜音來電5
- 6. 如何處理HTMLElement.Click()靜默失敗
- 7. 如何靜默添加通知?
- 8. NSIS - 如何檢測靜默安裝?
- 9. 如何在Swift中靜默警告3
- 10. 靜默安裝
- 11. 如何不外牆(不帶靜電)
- 12. 如何獲得來電電話號碼?
- 13. 如何在來電時致電活動。
- 14. 如何攔截來電pjsip
- 15. 我如何阻止來電?
- 16. 如何模擬來電?
- 17. 如何檢測電話來
- 18. 如何發送電子郵件沒有用戶靜默和默認情況下使用javamail gmail id在android中?
- 19. 我該如何靜靜發送Outlook電子郵件?
- 20. 如何通過靜默提供用戶憑據來打開SharePoint頁面
- 21. VB.NET:靜默失敗?
- 22. 「靜默」使用Javascript
- 23. SqlDataAdapter.Update靜默失敗
- 24. 靜默安裝vcredist_xxx.exe
- 25. 從SilverLight撥打電話時,NetConnect在Flash中靜默失敗
- 26. 從Windows Phone 7設備靜默發送電子郵件?
- 27. 如何在Windows Mobile中記錄來電和來電?
- 28. 如何在接到來電後爲來電者設置聲音?
- 29. 如何檢測來自電話線的來電號碼?
- 30. 如何檢測來電者的功能和來電的位置
好吧,我知道。但是如何使用EventInjector將手機的聲音配置文件更改爲無聲?我嘗試了幾個組合,並沒有工作......任何想法? – 2012-02-24 13:23:03
如果您有BB設備,只需找出將手機更改爲靜音配置文件所需的按鍵,然後將其複製到您的代碼中即可。 – jprofitt 2012-02-24 13:32:43
想通了...試了一下..並沒有工作:) – 2012-02-24 13:43:50