2010-08-17 25 views
2

guys。我正在嘗試爲android構建一個voip應用程序。我想利用內置的Android手機撥號器。你們可以給我一些參考。我一直在使用Google搜索,沒有運氣。由於在第三方應用中使用android撥號器

回答

8

您需要做的是在Activity上設置一個Intent過濾器,以便撥打電話。你在你的 AndroidManifest.xml文件中這樣做。修改您的活動定義,包括這個意圖過濾器:

<intent-filter> 
    <action android:name="android.intent.action.CALL" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="tel" /> 
</intent-filter> 

注:也有一些替代方法來調用人(其中可我聯繫波紋管源的 AndroidManifest.xml中會看到,然而,這是主要的一個

添加這會給用戶在撥打電話時使用你的應用程序的選項,這可以被設置爲如果用戶希望的默認應用程序。

然後,您可以獲取電話號碼通過添加像這樣的東西c歌頌你的你的活動onCreate()方法:

final Intent i = getIntent(); 
final Uri phoneUri = i.getData(); 

phoneUri現在包含電話:00000000000,你可以很容易地數出Uri object

,如果你有在未來採取問題看看android source。如果您想查看,我從phone app source得到了這些代碼。

+0

嗨以上爲我工作。謝謝!但我也想在撥打號碼時將Skype列入該列表,有什麼辦法嗎? – ruben 2011-06-14 19:09:40

+0

我認爲Skype使用相同的URI方案。應該只是工作:/ – matto1990 2011-06-28 08:54:52

+0

是的,它肯定會。我錯誤地安裝了skype lite,它沒有:| – ruben 2011-06-28 20:21:41

0

這應該與新的特殊權限打開撥號程序:

Intent i = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:0000000000")); 
startActivity(i); 

這應該打開與已經插入所需的電話號碼撥號器。

+0

我在找的是用戶能夠推撥號碼。用戶按下通話後,它將使用我的voip應用程序而不是GSM電話。就像谷歌的聲音是如何做到的。 – CChi 2010-08-17 08:41:32

+1

啊我看到了,我會回答在另一個答案 – matto1990 2010-08-17 08:57:38