我正在开发基于通知的应用,我需要收听来电通知。我已经能够收听来电,短信,邮件等。我不知道如何通过代码收听Whatsapp上朋友的ping或消息。这可以实际完成,但问题是TTS服务继续启动。当用户发送消息时,两次TTS服务运行两次。 PLZ解决了这个问题...
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
super.onNotificationPosted(sbn);
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
int state = telephonyManager.getCallState();
if (state != TelephonyManager.CALL_STATE_OFFHOOK) {
String packageName = sbn.getPackageName();
if (sbn.getNotification().tickerText != null) {
if (packageName.contains("whatsapp")) {
whatText = "Whatsapp Notification";
initTTS(sbn.getNotification().tickerText + "");
}
}
}
}
private void initTTS(String s) {
text = whatText + " ";
STD = s + " ";
tts = new TextToSpeech(this, this);
tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onStart(String utteranceId) {
}
@Override
public void onDone(String utteranceId) {
stopSelf();
}
@Override
public void onError(String utteranceId) {
}
});
}
@Override
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
tts.setLanguage(Locale.US);
SharedPreferences preferences = getSharedPreferences("SET", MODE_PRIVATE);
String Demo = preferences.getString("text", text);
tts.speak(Demo + STD + " ", TextToSpeech.QUEUE_FLUSH, null);
}
}