从短信/邮件链接到 Android 应用程序

发布于 2024-10-12 07:53:29 字数 1457 浏览 3 评论 0原文

我想知道我们是否可以在短信中提供一个由我的应用程序处理的链接。例如,类似于 myapp://blabla 的链接。通过单击它,我的应用程序将打开,并以链接作为参数。

这个问题还涉及电子邮件,无论是来自具有特殊扩展名的文件还是来自短信中的链接。

非常感谢您的帮助。


编辑 31/01

实际上,我按照格雷格的建议做了,但它不起作用。这样的链接(myapp://blabla)在短信/电子邮件中是不可点击的...当我用http替换myapp作为方案时,它可以工作(Android询问我是否应该使用myapp或浏览器打开链接)。但是 myapp://blabla 不能使用 myapp 作为方案点击。 这是我的代码:

   <application android:icon="@drawable/icon" android:label="@string/app_name"
android:debuggable="true">
<activity android:name=".myapp"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.NoTitleBar"
          android:launchMode="singleTask"
          android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="myapp" android:host="blabla" />
        </intent-filter>
    </activity>

    <activity android:name=".SecondActivity"></activity>
    <activity android:name=".SettingsActivity"></activity>
</application>

I would like to know if we can have a link in a SMS that would be handle by my application. For example a link which would look like myapp://blabla. And by clicking on it myapp would be open with the link as an argument.

This question also refers to email, either from a file with a special extension or a link like in the SMS.

Thanks a lot for your help.


Edit 31/01

Actually, I did what Greg suggested it but it doesn't work. Such a link (myapp://blabla) is not clickable in a SMS/email...When I replace myapp with http as a scheme, it works (Android asks me wether it should open the link with myapp or the browser). But myapp://blabla isn't clickable with myapp as a scheme.
Here is my code:

   <application android:icon="@drawable/icon" android:label="@string/app_name"
android:debuggable="true">
<activity android:name=".myapp"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.NoTitleBar"
          android:launchMode="singleTask"
          android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="myapp" android:host="blabla" />
        </intent-filter>
    </activity>

    <activity android:name=".SecondActivity"></activity>
    <activity android:name=".SettingsActivity"></activity>
</application>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独木成林 2024-10-19 07:53:29

是的,你可以使用意图过滤器。

基本上,在您的 Android 清单中,选择您想要处理给定 url 的活动。

<activity android:name=".myactivies.MyActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="myapp" android:host="blabla" />
</intent-filter>
</activity>

然后在您的 Activity 中,您可以通过调用 Intent 上的 getData() 来获取 url。

Yep you can with an intent filter.

Basically in your android Manifest, choose an activity that you want to be the one that handles the given url.

<activity android:name=".myactivies.MyActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="myapp" android:host="blabla" />
</intent-filter>
</activity>

Then inside your activity you can get the url by calling getData() on the intent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文