gpt4 book ai didi

Android:如何找出内容解析器的客户端

转载 作者:行者123 更新时间:2023-11-30 00:53:24 24 4
gpt4 key购买 nike

我目前正在从事一个项目,该项目将过滤掉从特定应用程序到 android 通讯录的一些特定查询。我想知道如何确定哪个应用程序正在访问联系人提供程序?我查看了 API 引用资料,但看起来只有获取内容提供者客户端的方法,而不是获取请求访问数据的应用程序的方法。如果有人能稍微解释一下,那将是很大的帮助!提前致谢!

最佳答案

从您的 ContentProvider 中,您可以获得像这样调用您的应用程序的包名称:

@NonNull
private static Collection<String> getCallingPackages(Context context) {
int callingUid = Binder.getCallingUid();
if (callingUid == 0) {
return Collections.emptyList();
}

String[] packages = context.getPackageManager().getPackagesForUid(callingUid);

return new ArrayList<>(Arrays.asList(packages));
}

然后您可以检查包是否在您维护的白名单/黑名单中。

关于Android:如何找出内容解析器的客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40575900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com