从短信/邮件链接到 Android 应用程序
我想知道我们是否可以在短信中提供一个由我的应用程序处理的链接。例如,类似于 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,你可以使用意图过滤器。
基本上,在您的 Android 清单中,选择您想要处理给定 url 的活动。
然后在您的 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.
Then inside your activity you can get the url by calling getData() on the intent.