检查Android拨号器中的号码

时间:2013-08-29 12:39:30

标签: android android-intent

我必须为我的公司开发一个Android的拨号器应用程序,以利用我们的内部voip系统。我对Android很新,但有钛经验。

应用程序应捕获该号码,并且必须对该号码执行某些检查。检查后,标准手机应用程序应拨打该号码。

注册广播接收器不是一种选择,因为此活动必须从用户输入/决定开始

对于这种情况,我有以下清单:

<activity android:name="CallerActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.CALL_PRIVILEGED" /> 
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="tel" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.CALL" /> 
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="tel" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.CALL_BUTTON" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.CALL" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/phone" />
            <data android:mimeType="vnd.android.cursor.item/phone_v2" />
            <data android:mimeType="vnd.android.cursor.item/person" />
        </intent-filter>
    </activity>
</application>

按预期工作。我的应用程序显示为拨号选项。然后在我的活动中我有以下代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final Intent i = getIntent();
    final Uri number = i.getData();
    number = checkNumberInternal(number);

    Intent dial = new Intent(Intent.ACTION_CALL, number);
    dial.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(dial);
}

代码实际上有效,但唯一的问题是,一次又一次弹出默认的拨号选项对话框。

应用必须没有任何用户界面

1 个答案:

答案 0 :(得分:0)

代码很好。在清单文件中的应用程序标记之前使用以下代码。现在工作正常,无需打开默认的调用选项弹出窗口。让我知道你是否仍然发现任何问题:

<uses-permission android:name="android.permission.CALL_PHONE" />