实际上,当任何其他应用从我的应用分享的内容提供商处获取数据时,我想要某种广播
答案 0 :(得分:8)
您可以使用Binder.getCallingUid()
来获取调用应用程序的内容。
然后使用getPackageManager().getNameForUid(uid)
获取调用应用程序的包名称。
示例:强>
@Override
public Uri insert(Uri uri, ContentValues values) {
int code = sUriMatcher.match(uri);
String callingPackageName = getContext().getPackageManager().getNameForUid(
Binder.getCallingUid());
Log.d(TAG, "calling Package Name::" + callingPackageName);
if (callingPackageName.equals(PKG_MY_PACKAGE)) {
//do what you want
}
.
.
.
return uri;
}
答案 1 :(得分:3)
也许我已经很晚了,但是在API19及以上版本中你可以打电话
getCallingPackage();
在ContentProvider中执行此操作。
请查看Android Reference了解更多详情。