有三个问题经常被人问到,而它们平时是被分开讨论的。
一个是从消息里点一个链接,结果跳到了一个不相干的 App 里;或者本该在应用内打开的,却跳到了浏览器。
第二个是通知不响。更让人费解的是,应用里所有的开关都开了,还是不提醒。
第三个是分享。你想把一张图分享出去,分享列表里却找不到它。
这三件事在感觉上完全不搭界——一个是链接,一个是提醒,一个是分享。
但它们其实是同一类问题。而看清这一点,比分别记住三条设置路径有用得多。
统一判断:这些都是"系统怎么看它"
先说结论。
这三件事的决定权,都不在电报手里,而在系统手里。
它们的共同点是:它们在问"系统把电报当成了什么"。
系统把哪一类链接交给它开,系统准不准它发通知,系统在分享的时候列不列它——这些都不是某个应用能自己决定的,那是系统在管的事。
而这件事最容易让人走进死胡同的地方在于:你会本能地去应用里找开关。
打开了应用设置,翻遍了每一栏,全都是开着的,可问题还在。于是你觉得"这软件有毛病"。
但那个拦住你的开关,压根不在这个应用里。
第一件:链接归谁打开
先说链接跳错这件事。
为什么会跳浏览器?
因为在你点下那个链接的时候,系统得先做一个判断:这类链接该交给谁打开?
这个判断不是当场决定的,它依据的是系统里的一份登记:哪一类链接,归属哪个应用。
如果这份登记里,这一类链接没有被正确归给它,那系统就会退回默认——扔给浏览器。
为什么有时候又跳到别的 App?
同样的道理。可能那个链接的形式比较通用(比如某些常见的网址格式),于是系统认为"有好几个应用都能处理它",而当前登记的那个不是你想用的。
还有一个容易被忽略的原因:你从哪儿点的,也会影响谁来打开。
如果你是在浏览器里点开一条链接,那浏览器本身也有自己的处理逻辑,它可能直接自己打开了,而不是交出去。所以同样的链接,在应用里点和在浏览器里点,结果可能不一样。
那在哪改?
去系统的设置里找这个应用。
一般会有一栏叫"默认打开"或者"打开受支持的链接"这一类的字眼,里面会列出这个应用能处理的链接类型。你可以把它设成"每次都问",这样至少你会知道是谁在打开。
要说明的是,这一栏的名字和位置在各个系统上不一样,而且不同版本改过好几回。所以我不给你一条准确的路径,只给你一个找法:去系统的应用管理里找到它,然后在它的详情页里找带"打开"或者"链接"字样的那一项。
第二件:通知不响,而且开关全开了
第二个问题更常见,也更让人上火:应用里全开了,还是不提醒。
要弄清这个,得先把"通知"这件事分成两层。
第一层是应用内的:它想不想发。
这一层管的是"我这边要给你推什么"。你在应用里做的那一堆开关,比如通知开关、静音、消息内容的显示方式,都属于这一层。
第二层是系统的:准不准它发,以及让不让它活着。
这一层在应用外面,而它才是"全开了还是不提醒"的真正原因。
而系统这一层,通常有三道关。
第一道是通知权限。 就是你装完之后,系统会问你的那个"是否允许发送通知"。如果你当初点了不允许,那应用里怎么设都没用——因为它在外面就被拦住了。
第二道是后台和省电策略。 这一关是"让不让它活着"。如果系统把这个应用限制得很严,它就没法在你没打开的时候保持在线,于是消息要等你打开才一次性进来。这类问题我在讲省电设置的那篇里写过更细的,包括怎么把它放进不受限制的名单。
第三道是通知本身的分类。
这一点最容易被忽略。现在的系统通常会把一个应用的通知分成好几类(有的叫渠道、有的叫类别),你可以按类单独开关。所以有可能出现一种情况:总的开关是开的,但"消息"那一类的开关被关掉了。
还有第四样:系统自己的免打扰。
如果你开了系统的专注模式或者就寝模式,那不管应用里怎么设,它都不会响。这一条每次都要先排掉,因为它最隐蔽。
所以"全开了还是不提醒"的排查顺序是:
先看系统的通知权限有没有给;再看它是不是被省电策略限制住了;再看通知分类里有没有哪一类被单独关了;最后看系统有没有开着免打扰。
而这四样,全都不在电报里。
第三件:分享菜单里没有它
第三个问题:分享的时候列表里找不到它。
分享菜单列的是什么?
它列的是"系统登记过的分享目标"。也就是说,是系统来决定哪些应用有资格出现在这个列表里的。
而最常见的原因其实很朴素:列表没展开。
分享菜单里通常只先显示几个常用的,剩下的要点一个"更多"或者往下滑才看得到。所以第一件事是先滑到底看看。
第二个常见原因是它可以被定制。
现在很多系统允许你自己调整分享菜单——排顺序、或者干脆隐藏某些项。所以有一种可能是:你以前把它调到了后面,或者隐藏掉了。
第三个是系统层面的登记出了问题。
这种情况比较少见,但也有——比如应用装的时候没登记上。这一类通常重启一次,或者重新装一次就恢复了。
所以这一条的顺序是:先滑到底找,再看分享菜单有没有可定制的地方,最后才考虑重装。
为什么这些事天生归系统管
讲到这里,值得再问一层:为什么这三件事都不是应用自己说了算?
答案在于它们都有一个共同特征:它们是"跨应用"的事,或者"打扰你"的事。
先看链接归属。
同一个链接,可能好几个应用都能打开:这个应用能开、那个应用也能开、浏览器当然也能开。这就形成了竞争。
有竞争就得有裁判,不然就乱套了。而这个裁判只能是系统,因为只有它站在所有应用之上。
分享菜单也是同一个道理。你点"分享",系统得决定往列表里放哪些候选,而候选之间也要排先后。这同样是"多个应用争一个位置"的事,也必须由系统来裁。
再看通知。
通知这一件事的性质不太一样,它不是竞争,它是"打扰"。
而这里有一个很基本的分寸问题:如果让想打扰你的那个应用自己决定要不要打扰你,结果会怎样?
答案很明显——它一定会选"要"。因为没有哪个应用会主动放弃把你叫回来的机会。
所以这一层权限必须放在应用外面。系统在这里扮演的角色不是裁判,而是保安:它替你把关,决定谁有资格开口。
而免打扰、专注模式这类东西更是只能由系统来做,因为它管的是"你这一段时间不想被打扰",这本来就跨越了所有应用。
把这几种放在一起,那句结论就顺了:跨应用的事,裁判只能是系统;而通知这件事,系统还得再当一次保安。
这句话有一个很实用的推论,我建议你记下来:
以后凡是遇到"好几个应用在抢同一件事"(该谁打开、该分享给谁),或者"一个应用想打扰你"这两类问题,第一反应就该是去系统里看,而不是在应用里翻。
因为在应用里,你只能看到它自己的意愿,看不到它被允许了什么。
还有一件事顺带说清:这些系统级的安排不是"装的时候定一次就永远如此"的。
应用升级可能重新登记一次,系统升级可能重置一次权限,你换手机、恢复备份之后更是要重新走一遍。所以"我记着当初允许过"这句话不成立——它随时可能变。
一条通用的判断法
把这三件事放在一起,可以提炼出一句话,我觉得它比任何一条具体路径都有用:
应用内的设置决定"它想不想",系统的设置决定"它能不能"。
所以当你遇到"应用里全开了但还是不行"这一类情况时,你就知道该往哪儿走了——不要去应用里再翻一遍,去系统里看它被允许了什么。
而这三件事之所以看起来不搭界,是因为它们分别属于"链接""通知""分享"三个不同的功能,但它们背后的机制是同一个:系统在替你做主,而你不知道主被做了什么。
顺带说一句,这也是我在很多地方都提到的那个思路:遇到问题的第一步,是先判断"这件事是谁在做主"。做主的是应用还是系统,决定了你该去哪儿找开关。
几个常见的坑
第一个坑,是遇到问题只在应用里翻。链接归属、通知权限、分享目标,这些都不在应用里。
第二个坑,是以为"通知权限"装的时候点过一次就定了。其实它随时可以在系统里改,而且升级系统之后有时候会被重置。
第三个坑,是忽略了通知的分类。总开关开着,某一类被关掉,一样不响。
第四个坑,是没想到系统的免打扰。专注模式一开,所有应用都得安静。
第五个坑,是分享菜单里找不到就以为不支持。很多时候只是没滑到底。
最后
如果只用三句话记住这篇,我希望是这三句。
链接跳错 App、通知不响、分享菜单里没有它——这三件事看着不搭界,其实是同一类问题:它们都不是电报的设置,而是系统对它的安排。系统把哪类链接交给它、准不准它发通知、在分享时列不列它,都不是应用自己能定的。
所以"应用里全开了还是不提醒"的答案往往很简单:你开的是它自己的开关,而拦住它的是系统的开关。通知那一头至少有三道关——通知权限、后台省电策略、通知分类,另外还要看系统有没有开着免打扰。
而一句最有用的判断法是:应用内的设置决定"它想不想",系统的设置决定"它能不能"。 遇到这一类问题,别再去应用里翻第二遍。