0

我想在我的应用程序中添加一项功能,当我触摸消息中的号码时,用户可以决定将号码发送到我的应用程序或 Android 拨号器。

例如,我的朋友给我发了一个代码,我想将此代码用于我的应用程序运行它的特殊 ussd 代码。

我想我必须使用隐式意图,但我不知道如何?

谢谢

4

2 回答 2

1

我引用了以下链接

-意图过滤器

-意图隐式\显式

隐式意图指定应该执行的动作以及为动作提供数据的可选数据。

例如下面告诉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>

于 2013-09-08T13:46:35.477 回答
0

我假设您正在谈论您收到的短信中的一个号码。单击该号码后,您希望用户可以选择拨号或使用您的应用程序。

如果是,那么您需要在清单文件中包含意图过滤器以进行启动器活动。

于 2013-09-08T13:33:58.987 回答