2012-04-12 22 views
8

Ben normalde gelen çağrı tuş takımını tarafından yapılan bir çağrı, yanıtladıktan sonra bir numarayı aramak istiyorum. göster DTMF

ben aşağıdakileri denedim, ama bu (böylece ACTION_VIEW yapar) yerine yeni bir çağrı arama başlatır.

Intent dial = new Intent(Intent.ACTION_DIAL); 
dial.setData(Uri.parse("tel:9")); 
startActivity(dial); 

Tahminimce, "tel:" yeni bir arama sırasını tetikler. Muhtemelen ihtiyacım olan şey, arama içi tuş takımını göstermek ve tuş vuruşlarını taklit etmektir.

Herkes?

Düzenleme

: Beni, sadece 'com.android.phone.InCallScreen' bir keydown olayı göndermek gerekir düşündürüyor bu soruyu Starting the InCallScreen activity buldum ama bunun nasıl emin değilim. Ayrıca, yıllarca açık olan (ve yine de) yıllardır açık olan bir sorun da vardır: http://code.google.com/p/android/issues/detail?id=1428

+0

Anlatabildiğim kadarıyla, bunun için genel API'de işlevsellik yoktur. Bazı [önerilen değişiklikler] vardı (https://groups.google.com/forum/#!msg/android-contrib/4QqHgLOrBO8/xXl9221pv-kJ) TelephonyManager bu tanır, ancak bu durmuş gibi görünüyor etmek. – caseyburkhardt

cevap

0

Nope. Bu tel değil: yeni bir çağrıyı tetikler, bunun yerine yeni bir Niyet yaratıyor olmanız ve daha sonra startActivity (arama) çalıştırmanız; Sen yepyeni bir aktivite başlıyor, bu nedenle önceki kod kullanan telefon ile ilgili etkinlikleri ile etkileşim olamaz:

bu ne anlama geldiğini düşünün.

gerçekten ne yapmaya çalışıyorsun o zaman arama şeyin sona erdirmek için bir numara eklemek olduğunu düşünüyorum. Bunu yapmak için, tüm numaranızı, URI verilerinde duraklama karakterini (p) ve ACTION_CALL öğesini kullanmanız gerekir. Kod:

Intent dial = new Intent(Intent.ACTION_CALL); 
dial.setData(Uri.parse("tel:7195555555ppp9")); 
startActivity(dial); 

Üç duraklama yaptım, ne kadar süreceğine göre ayarlamanız gerekir. Alternatif olarak, bekleme karakterini (w) kullanın, ancak bu kullanıcının fazladan rakamlar göndermesini onaylaması gerekir.

İlgili konular