2

我为android创建了一个拨号器。我将它与默认拨号器集成。每当我单击呼叫时,我都会使用对话框获得完整的操作。到目前为止,我的应用程序都很好。

我希望我的应用程序仅在拨打的号码为 10 位以上时才使用选项作为完整操作之一

现在我想要避免一些数字,如 USSD 代码、高级号码等,它们可以在用户的​​通讯录中。因此,每当用户单击拨号器中的呼叫 USSD 代码或高级号码时,我不希望我的应用程序成为选项之一。如何为此设置意图过滤器。我假设我的过滤器必须在清单中。

只有当拨打的号码超过 10 位时,我的应用才会显示

我找到了 mime 类型、URL 的示例,但找不到任何拨号器示例。

这是我的活动清单条目

    <activity android:name=.ActivityCallMore" 
        android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.CALL_PRIVILEGED" />
            <action android:name="android.intent.action.DIAL" />
            <action android:name="android.intent.action.CALL_BUTTON" />
            <!-- <action android:name="android.intent.action.VIEW" /> -->
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="tel" />
        </intent-filter>
    </activity>

提前致谢。

4

1 回答 1

2

对不起,我不认为这是可以做到的。

我想象它会是这样的

<data android:pathPattern="...........*" />

http://developer.android.com/guide/topics/manifest/data-element.html指出那pathPattern

meaningful only if the scheme and host attributes are also specified for the filter.

并且没有hosttel://0123456789URI 中指定。自 2009 年以来,类似的问题在https://code.google.com/p/android/issues/detail?id=3368被列为“中等优先级缺陷” 。

让我们希望别人能证明我错了。

于 2012-12-22T08:53:38.787 回答