2
我想關閉我的應用程序,當用戶得到Viber/Skype/WhatsApp調用。我試圖使用AudioFocus監聽器和通知解析,他們都不是很好。可能有其他方法可以幫助我嗎?檢測傳入的VoIP呼叫Android
我想關閉我的應用程序,當用戶得到Viber/Skype/WhatsApp調用。我試圖使用AudioFocus監聽器和通知解析,他們都不是很好。可能有其他方法可以幫助我嗎?檢測傳入的VoIP呼叫Android
在音頻管理器中檢查MODE_IN_COMMUNICATION應該達到這個目的。 https://developer.android.com/reference/android/media/AudioManager.html#MODE_IN_COMMUNICATION
public static boolean isVoip(Context context){
AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
if(manager.getMode()==AudioManager.MODE_IN_COMMUNICATION){
return true;
}
else{
return false;
}
}
請詳細說明你嘗試過什麼,你遇到什麼問題。 – AndroidMechanic
當我試圖解析通知我有一個問題,只有使用它的方式,它是手動檢查所有類型的通知形式的所有VoIP應用程序,發現數據內通知的文本消息/圖片/微笑和來電通知內的數據之間的區別,然後發送意圖到我的應用程序關閉。這將工作,直到第一次更改當前VoIP應用程序的通知數據(誰知道Viber/Skype/WhatsApp更新這部分代碼的頻率); – VantuZ
這是行不通的:AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE); int result = am.requestAudioFocus(null,AudioManager.STREAM_VOICE_CALL,AudioManager.AUDIOFOCUS_GAIN); – VantuZ