Android 创建自定义链接类型以打开应用程序

Android 创建自定义链接类型以打开应用程序,android,Android,因此,我们的目标是创建一些独特的类型,将只与我的应用程序打开。这应该发生在整个操作系统中。例如:假设我的应用程序在你点击像#12345678.90这样的数字时打开。无论何时出现此类号码,它都会自动成为一个链接,并在单击后打开我的应用程序。 可能吗 是,如果使用深度链接,请确定 您需要将以下行添加到AndroidManifest.xml中的活动中 <data android:scheme="http" android:host="www.example.com"

因此,我们的目标是创建一些独特的类型,将只与我的应用程序打开。这应该发生在整个操作系统中。例如:假设我的应用程序在你点击像#12345678.90这样的数字时打开。无论何时出现此类号码,它都会自动成为一个链接,并在单击后打开我的应用程序。
可能吗

是,如果使用深度链接,请确定

您需要将以下行添加到AndroidManifest.xml中的活动中

    <data android:scheme="http"
          android:host="www.example.com"
          android:pathPrefix="gizmos" />

但是,这只在您有一个uri和您想要的任何方案时起作用

它能与#12345678.90不同吗?还是这就是要求


是,如果使用深度链接,请确保

您需要将以下行添加到AndroidManifest.xml中的活动中

    <data android:scheme="http"
          android:host="www.example.com"
          android:pathPrefix="gizmos" />

但是,这只在您有一个uri和您想要的任何方案时起作用

它能与#12345678.90不同吗?还是这就是要求

因此,我们的目标是创建一些独特的类型,将只与我的应用程序打开

根据定义,这对于SDK应用程序来说是不可能的。如果您可以编写代码来支持响应某些操作,那么其他任何人也可以,并且欢迎用户安装包含此类代码的2+应用程序

这应该发生在整个操作系统中

这也是不可能的,除非你建立自己的ROM模块,以某种方式强制所有出现的字符串神奇地成为可点击的,并神奇地路由到你的应用程序

最接近您所寻求的是,您的应用程序是否有一个
,其
属性与
Linkify
支持的模式相匹配,类似于Benoit的答案。许多应用程序直接或间接地使用
Linkify
(例如,通过
TextView
上的
android:autoLink
)使子字符串无需任何编程即可单击。然而:

  • Linkify
    不支持任意模式

  • 并不是每个应用程序都使用
    Linkify
    ,如果你的字符串出现在这些地方,它也不一定是可点击的

  • 任何应用程序都可以支持与您相同的模式(例如,浏览器和您的应用程序都支持Benoit的示例)

因此,我们的目标是创建一些独特的类型,将只与我的应用程序打开

根据定义,这对于SDK应用程序来说是不可能的。如果您可以编写代码来支持响应某些操作,那么其他任何人也可以,并且欢迎用户安装包含此类代码的2+应用程序

这应该发生在整个操作系统中

这也是不可能的,除非你建立自己的ROM模块,以某种方式强制所有出现的字符串神奇地成为可点击的,并神奇地路由到你的应用程序

最接近您所寻求的是,您的应用程序是否有一个
,其
属性与
Linkify
支持的模式相匹配,类似于Benoit的答案。许多应用程序直接或间接地使用
Linkify
(例如,通过
TextView
上的
android:autoLink
)使子字符串无需任何编程即可单击。然而:

  • Linkify
    不支持任意模式

  • 并不是每个应用程序都使用
    Linkify
    ,如果你的字符串出现在这些地方,它也不一定是可点击的

  • 任何应用程序都可以支持与您相同的模式(例如,浏览器和您的应用程序都支持Benoit的示例)


这并不强制OP所需模式的所有字符串都可单击,更不用说访问OP的应用程序,更不用说唯一访问OP的appWell编号或链接了,因为他想要单击某个内容。不输入。是的,它也可以不同于#12345678.90。例如:myApp://#1234567890可以用作自定义uri,并使我的应用程序读取这样的uri就足够了,对吗?不,不是,因为其他应用程序不会神奇地使这样的字符串可点击。你可以响应这样一个
Uri
,但除了你自己制作的HTML之外,其他应用程序不知道如何实际链接到这样的字符串(即使如此,我也不知道是否所有浏览器都必须将
元素与未识别的方案相匹配).好吧,你对此无能为力,至少我不知道有什么办法可以改变这一点。这并不能强制OP所需模式的所有字符串都可以单击,更不用说访问OP的应用程序,更不用说唯一地访问OP的appWell编号或链接了。这是一样的,因为他想要单击某些东西。不输入。是的,它也可以不同于#12345678.90。例如:myApp://#1234567890可以用作自定义uri,并使我的应用程序读取这样的uri就足够了,对吗?不,不是,因为其他应用程序不会神奇地使这样的字符串可点击。你可以响应这样一个
Uri
,但除了你自己制作的HTML之外,其他应用程序不知道如何实际链接到这样的字符串(即使如此,我也不知道是否所有浏览器都必须将
元素与未识别的方案相匹配).嗯,你没有别的办法了,至少我不知道有什么办法可以改变这一点。谢谢。因此,我可以定义自己的uri,它将打开我的应用程序,因为linkify支持uri。@VyprNoch:是的,如果你有一个
用于
动作视图
和一个类似于Benoit的
元素。但它必须是一个公认的方案,因为
Linkify
并不假定所有带有冒号的内容都是
Uri
。据我所知,它特别需要使用
http
https
rtsp
方案。这意味着其他应用程序也会响应这些链接,不仅仅是你的。谢谢。因此,我可以定义自己的uri,它将打开我的应用程序,因为linkify支持uri。@VyprNoch:是的,如果你有一个
用于
动作视图
和一个类似于Benoit的
元素。但它必须是一个公认的方案,因为
Linkify
没有