【发布时间】:2013-09-08 13:28:04
【问题描述】:
我想向我的应用添加一项功能,当我触摸消息中的号码时,用户可以决定将号码发送到我的应用或 Android 拨号器。
例如,我的朋友给我发了一个代码,我想将此代码用于我的应用程序运行它的特殊 ussd 代码。
我认为我必须使用隐式意图,但我不知道如何?
谢谢
【问题讨论】:
标签: java android android-intent android-implicit-intent
我想向我的应用添加一项功能,当我触摸消息中的号码时,用户可以决定将号码发送到我的应用或 Android 拨号器。
例如,我的朋友给我发了一个代码,我想将此代码用于我的应用程序运行它的特殊 ussd 代码。
我认为我必须使用隐式意图,但我不知道如何?
谢谢
【问题讨论】:
标签: java android android-intent android-implicit-intent
我已经引用了以下链接
隐式意图指定应该执行的操作和 可选数据,为操作提供数据。
例如下面告诉Android系统查看一个网页。 所有安装的网络浏览器都应该注册到相应的 通过意图过滤器获取意图数据。
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>
【讨论】:
我假设您正在谈论您收到的短信中的一个号码。单击该号码后,您希望用户可以选择拨号或使用您的应用程序。
如果是,那么您需要在清单文件中包含 intent filter 以进行启动器活动。
【讨论】: