0
A
回答
0
不,您不能通過揚聲器回放其他任何方式。因此,您將無法編寫「無聲自動應答」應用程序或類似的東西。這是故意的我想,不要讓應用程序「說話」的代表用戶的方式,他不會知道
+0
我寫了一個示例代碼,但不知道該怎麼辦。請檢查上面的代碼 – user189942
+0
有可能向主叫方播放tts句子。這是一個考驗的事實。 (galaxy s 2 i9100)建議讓用戶輸入句子。 –
0
這是我寫的代碼:
public class AutoAnswerIntentService extends IntentService {
public AutoAnswerIntentService() {
super("AutoAnswerIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
Context context = getBaseContext();
// Load preferences
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
BluetoothHeadset bh = null;
if (prefs.getBoolean("headset_only", false)) {
bh = new BluetoothHeadset(this, null);
}
// Let the phone ring for a set delay
try {
Thread.sleep(Integer.parseInt(prefs.getString("delay", "2")) * 1000);
} catch (InterruptedException e) {
// We don't really care
}
// Check headset status right before picking up the call
if (prefs.getBoolean("headset_only", false) && bh != null) {
if (bh.getState() != BluetoothHeadset.STATE_CONNECTED) {
bh.close();
return;
}
bh.close();
}
// Make sure the phone is still ringing
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (tm.getCallState() != TelephonyManager.CALL_STATE_RINGING) {
return;
}
// Answer the phone
try {
answerPhoneAidl(context);
}
catch (Exception e) {
e.printStackTrace();
Log.d("AutoAnswer","Error trying to answer using telephony service. Falling back to headset.");
answerPhoneHeadsethook(context);
}
// Enable the speakerphone
if (prefs.getBoolean("use_speakerphone", false)) {
enableSpeakerPhone(context);
}
return;
}
private void enableSpeakerPhone(Context context) {
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
}
private void answerPhoneHeadsethook(Context context) {
// Simulate a press of the headset button to pick up the call
Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED");
// froyo and beyond trigger on buttonUp instead of buttonDown
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
}
@SuppressWarnings("unchecked")
private void answerPhoneAidl(Context context) throws Exception {
// Set up communication with the telephony service (thanks to Tedd's Droid Tools!)
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService;
telephonyService = (ITelephony)m.invoke(tm);
// Silence the ringer and answer the call!
telephonyService.silenceRinger();
telephonyService.answerRingingCall();
}
}
相關問題
- 1. Android 4.0.3中的來電自動應答
- 2. 自動應答
- 3. C#在LYNC中自動應答呼叫
- 4. 提琴手自動應答時,在URL
- 5. 有沒有辦法在android中創建自定義應答機?
- 6. android應答來電
- 7. 自動應答Drupal 7的替代
- 8. 帶導軌的自動應答器
- 9. SIP:檢測自動應答代理
- 10. 如何自動應答Linux終端
- 11. 如何在PowerShell中自動回答「是」?
- 12. 在自動應答的批處理文件中使用CACLS.EXE
- 13. 如何配置客戶端在vLine中自動應答?
- 14. iframe上的自適應自動應答器
- 15. 現在可以在android中編寫應答機應用了嗎?
- 16. PHP自動回答腳本
- 17. 自動啓動在Android應用服務
- 18. .NET中的自動問題解答(FAQ)
- 19. 如何自動回答腳本在python
- 20. 如何適應我的HTML頁面的自動應答代碼?
- 21. 移動應答設計
- 22. android調用應答/拒絕應用
- 23. 如何自動應答有忙信號的Android設備的呼叫?
- 24. 自動發佈Android應用
- 25. android自動應用開發
- 26. Android應用自動更新
- 27. 在表單提交中發送自動應答電子郵件腳本
- 28. 自動WiFi聯機在Android應用
- 29. Regd:在Android Nougat中支持應答呼叫
- 30. 在Android應用程序中搜索列表並顯示答案
是的,我認爲它不可能在android中。 – Praveenkumar
[在語音通話中播放音頻文件]的可能重複(http://stackoverflow.com/questions/7042742/play-an-audio-file-on-a-voice-call) – Praveenkumar
我得到了一個link.please檢查這個http://code.google.com/p/voicemail-example-for-android/wiki/Development – user189942