我刚刚迁移到Android 6.0,“共享到”面板在各种应用程序的顶部都有一个新的灰色区域,用于放置联系人(假设您将其固定在此处)。这将是一个很好的功能,除了联系人最终在那里,我找不到将其删除的方法。

具体来说,该联系人似乎已由Messenger应用放置在此处,但也无法从该应用更改其固定。

评论

根据我的经验,添加联系人是因为与他们共享历史记录,而不是因为专门固定了他们(类似于“主屏幕”上的“应用程序建议”,尽管在这种情况下可以禁用),但我同意没有提示是否可以轻松删除。

一个非常有趣的方面是,特定的联系人最初是我刚向其发送一个SMS的电话号码。我将其添加到新联系人中,希望获得一个“删除/删除”按钮/方法……没有这种运气。 OTOH,与我分享了很多东西的几个联系人都没有出现。

我在AOSP问题跟踪工具上创建了功能请求:#194126。考虑加注星标以跟踪进度。

使用电话几天后更新:现在该区域已由whatsapp接管-很好,除了a)只有WA联系人b)显示至少我没有与之共享东西12个月。因此,似乎一个应用程序可以接管整个面板,并在那时仅显示其联系人的某些子集? OTOH,信使只能将一个联系人放在那儿。

跟进,已经(很长时间)了。原始缺陷在使用中已得到纠正,其他触点已占据该区域。呈现哪种联系方式的选择仍然是随机的,并且对于使用频率或新近度而言只是松散的。

#1 楼

事实证明-对于有根的人-有一种方法可以完全关闭Direct Share!

对于简短版本,请跳到此答案的底部。

在我的寻找一种方法来阻止这个愚蠢的功能困扰我,我研究了开发人员如何在应用程序中实际实现该功能。事实证明,他们向意图接收器(读取:事件侦听器)注册了服务,当我意识到这一点时,我开始寻找一种方法来阻止某些意图通过系统进行广播。好吧,Android实际上是内置的。它被称为Intent Firewall。我很快想出了如何为它创建一条规则来阻止应用程序接收到“嘿,有什么应用程序想要通过在用户要点击某些东西的时候在他们的拇指下放几个直接共享按钮来欺骗用户?” -event。

您只需创建一个简单的xml文件并将其放入其中即可:

<rules>
  <service block="true" log="true">
    <intent-filter>
      <action name="android.service.chooser.ChooserTargetService" />
    </intent-filter>
  </service>
</rules>


现在您必须将其放在电话并将其复制到Intent Firewall目录中。在大多数设备上,我只是使用Root Explorer在其中复制文件(不需要chmod),试图共享某些东西,从而导致Direct Share目标弹出,而

/data/system/ifw/


和BOOM!

我建议做一些背景阅读(请参见上面的链接),尤其是有关Intent Firewall的工作方式以及如何找到该文件夹​​的信息。

不共享愉快!

评论


我创建了一个名为disable-direct-share.xml的文件,其中包含上面的确切XML内容,然后使用Root Explorer将其复制到现有文件夹/ data / system / ifw /中,然后...仍然烦人的“通过...共享”单个联系人出现在应用后几秒钟。根植的LineageOS,Android 7.1.2。任何想法?谢谢!

–尼古拉斯·拉乌尔(Nicolas Raoul)
18-3-22在6:33



嗯,不,我认为应该可行。这是我实际下载的文件,然后移至以下文件夹:stor4ge.rejh.nl/_stored/var/android/system-images/…

– REJH
18 Mar 26 '18 at 14:56

谢谢!!根据您的回答,我创建了一种存储库,其中包含三种安装此文件的方式:仅在无电话的计算机上使用adb,最后使用可刷新的恢复zip文件。见github.com/stefansundin/android-disable-direct-share

–stefansundin
18年5月19日在23:31

您也可以通过TWRP在没有root的情况下应用此修复程序。 1.将xml文件复制到某个地方。 2.重新启动进入恢复(TWRP)。 3.按高级>文件管理器。 4.在/ sdcard /上找到您的文件,然后将其复制。 5.打开目录/ data / system / ifw,粘贴6.重新启动回系统。

–VasyaNovikov
19年5月28日在17:02

我建议不要在Android 10(Q)中使用此方法-它可以在9(Pie)中正常工作,但在10中它会使您尝试共享的应用程序崩溃。

–MartyMacGyver
19年9月4日在6:18

#2 楼

前往设置。单击高级功能。滚动到“直接共享”。将其关闭,所有联系人都将不再通过共享。
该图显示了禁用直接共享的可视化效果。


评论


嗯,设置菜单中没有高级功能?我们正在谈论电话设置,对吗?

– lfabio
16-9-29在11:21

它适用于Galaxy S7。那么,也许这种方法特定于三星手机吗?是的,我在“显示”之后的电话设置菜单中找到了“高级功能”。

– kdb
16-12-29在14:43

这是确切的答案,几乎不需要任何挖掘,也无需扎根手机或任何其他麻烦的事情。

–约翰
17年5月21日在20:55

您能附上一张截图吗?非常感谢! :-)

–尼古拉斯·拉乌尔(Nicolas Raoul)
18 Mar 22 '18在6:34

只需在LG的Android上搜索此选项,就可以得到结果,并且可以正常工作,我摆脱了这一烦人的功能。

–有抱负的开发人员
20 Mar 30 '20 at 18:20

#3 楼

您可以通过删除Messenger访问联系人的权限来禁用“共享方式”菜单。如果您将Messenger用作主要的SMS应用程序,这是不切实际的,但是如果您使用其他应用程序,也可以。

评论


这不是真正的解决方案,对吗?

– REJH
16年7月22日在5:44

如果他们仅来自Messenger,并且用户使用其他SMS应用程序作为默认SMS应用程序,则此方法有效。联系人也可以来自其他应用程序(在我的情况下,例如来自第三方电子邮件应用程序和Whatsapp),但是禁用联系人权限会导致它们发生故障。

–石堆
16-8-28在2:35



#4 楼

另一种选择是使用诸如AndmadeShare之类的应用程序,该应用程序将完全取代共享菜单。
https://play.google.com/store/apps/details?id=com.andmadesoft.share

评论


AOSP也建议这样做,是的,这可能是一个很好的临时解决方案。

– lfabio
2015年11月25日在16:26

链接已死

–德米特里
19年8月22日在0:52

#5 楼

目前。从6.0开始,没有办法禁用所有直接共享。有些应用可能会添加一个选项来禁用其应用的直接共享。

评论


我实际上对该功能还不错-如果它按预期工作,即(我认为)将“最常共享给”的联系人放在那里。我会的。但是需要有一种编辑列表的方法。我应该说-需要一种简单的方法来编辑列表。

– lfabio
15年11月6日在18:11

当前,问题在于应用程序可以添加任何联系人,例如,如果多个IM添加了同一个人,则您将获得多种联系同一个人的方法。首先要占用空间。我认为,顶部的标签可在用户和应用之间切换。

– Roh_mish
2015年11月13日下午6:47

#6 楼

您可以通过安装Fliktu从手机中删除直接共享,而不论其制造商是什么,它都比Andmade Share更好。

#7 楼

我发现,如果whatsapp在您的直接共享菜单上显示有问题的联系人(即当女友正在看时您的小鸡),您可以通过将附件发送给其他更安全的联系人来将该联系人推下并从列表中移出。由于whatsapp会显示与您共享内容的最后四个人,因此可以与其他四个人共享照片,或根据需要共享尽可能多的联系人,以将有问题的联系人从前四个联系人中剔除。

评论


问题是,这很不稳定。它可能会起作用,但可能不会起作用。它可能会培养出我真正与之互动的人,但可能不会—它带来了三年来我从未与之互动的情侣关系。

– lfabio
16年7月11日在16:32

倒霉的你:(不要陷入行动。要安全!

– Roh_mish
16年5月5日在15:58

#8 楼

为了从“通过菜单共享”中成功删除Outlook联系人,我执行了以下操作:-
1。设置,应用程序,应用程序管理器,Outlook,权限-取消选中所有
2。 Outlook,Gear图标,单击有问题的帐户,取消选中“同步联系人”,然后单击“重置帐户”

,这已从“共享方式”菜单中删除了Outlook电子邮件联系人。 Outlook正常工作,但与手机其余部分隔离。

评论


这实际上不是这个问题的答案,但这正是我正在尝试做的事情。因此,谢谢您的回答!

–ssmy
2016年9月1日在2:03

这也是我一直在寻找的,并且有效,但不幸的是,这似乎只是一个临时解决方案。 Outlook联系人已返回。

– bmaupin
17年9月9日在11:48

#9 楼

我发现,如果您在Whatsapp中阻止该联系人,则当您共享或转发内容时​​,它会停止在共享菜单和新的“频繁聊天”部分中显示该联系人。

但是,当您取消阻止它时,可能会在这两个地方再次显示。

最好的问候。