我想在我的应用程序中添加一项功能,当我触摸消息中的号码时,用户可以决定将号码发送到我的应用程序或 Android 拨号器。
例如,我的朋友给我发了一个代码,我想将此代码用于我的应用程序运行它的特殊 ussd 代码。
我想我必须使用隐式意图,但我不知道如何?
谢谢
我想在我的应用程序中添加一项功能,当我触摸消息中的号码时,用户可以决定将号码发送到我的应用程序或 Android 拨号器。
例如,我的朋友给我发了一个代码,我想将此代码用于我的应用程序运行它的特殊 ussd 代码。
我想我必须使用隐式意图,但我不知道如何?
谢谢
我引用了以下链接
隐式意图指定应该执行的动作以及为动作提供数据的可选数据。
例如下面告诉Android系统查看一个网页。所有已安装的 Web 浏览器都应通过意图过滤器注册到相应的意图数据。
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.vogella.com")); startActivity(i);
如果一个Explicit Intent被发送到 Android 系统,它会搜索所有为特定动作和合适的数据类型注册的组件。
如果只找到一个组件,Android 直接启动该组件。如果多个组件是 Android 系统的标识符,用户将获得一个选择对话框,并且可以决定应将哪个组件用于该意图。
如何使用
您可以通过Intent 过滤器注册您自己的组件。如果一个组件没有定义一个,它只能通过显式意图调用。
将活动注册为浏览器
<activity android:name=".BrowserActivitiy"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"/>
</intent-filter>
</activity>
更新
mimeType的代码示例
<activity android:name="ShareActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
<data android:mimeType="image/*"/>
</intent-filter>
我假设您正在谈论您收到的短信中的一个号码。单击该号码后,您希望用户可以选择拨号或使用您的应用程序。
如果是,那么您需要在清单文件中包含意图过滤器以进行启动器活动。