我必须为我的公司开发一个适用于 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);
}
该代码确实有效,但唯一的问题是,默认拨号选项对话框一次又一次地弹出。
该应用程序必须没有任何用户界面