【问题标题】:How can I get a number placed in a text message on Android?如何在 Android 上的短信中获取号码?
【发布时间】:2013-09-08 13:28:04
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: java android android-intent android-implicit-intent


    【解决方案1】:

    我已经引用了以下链接

    -intent filter

    -Intents implicit\explicit

    隐式意图指定应该执行的操作和 可选数据,为操作提供数据。

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

    【讨论】:

    • 谢谢@Srinath。你知道我必须选择什么样的动作吗?(如果不是action.SEND)以及我必须为数据方案或mimtype设置什么?
    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-28
    • 2023-03-10
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多