本文整理汇总了Java中android.content.pm.PackageManager.GET_META_DATA属性的典型用法代码示例。如果您正苦于以下问题:Java PackageManager.GET_META_DATA属性的具体用法?Java PackageManager.GET_META_DATA怎么用?Java PackageManager.GET_META_DATA使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类android.content.pm.PackageManager
的用法示例。
在下文中一共展示了PackageManager.GET_META_DATA属性的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: generateProviderInfo
public static ProviderInfo generateProviderInfo(VPackage.ProviderComponent p, int flags,
PackageUserState state, int userId) {
if (p == null) return null;
if (!checkUseInstalledOrHidden(state, flags)) {
return null;
}
// Make shallow copies so we can store the metadata safely
ProviderInfo pi = new ProviderInfo(p.info);
if ((flags & PackageManager.GET_META_DATA) != 0
&& (p.metaData != null)) {
pi.metaData = p.metaData;
}
if ((flags & PackageManager.GET_URI_PERMISSION_PATTERNS) == 0) {
pi.uriPermissionPatterns = null;
}
pi.applicationInfo = generateApplicationInfo(p.owner, flags, state, userId);
return pi;
}
示例2: generateApplicationInfo
public static ApplicationInfo generateApplicationInfo(VPackage p, int flags,
PackageUserState state, int userId) {
if (p == null) return null;
if (!checkUseInstalledOrHidden(state, flags)) {
return null;
}
// Make shallow copy so we can store the metadata/libraries safely
ApplicationInfo ai = new ApplicationInfo(p.applicationInfo);
if ((flags & PackageManager.GET_META_DATA) != 0) {
ai.metaData = p.mAppMetaData;
}
initApplicationAsUser(ai, userId);
return ai;
}
示例3: generateActivityInfo
public static ActivityInfo generateActivityInfo(VPackage.ActivityComponent a, int flags,
PackageUserState state, int userId) {
if (a == null) return null;
if (!checkUseInstalledOrHidden(state, flags)) {
return null;
}
// Make shallow copies so we can store the metadata safely
ActivityInfo ai = new ActivityInfo(a.info);
if ((flags & PackageManager.GET_META_DATA) != 0
&& (a.metaData != null)) {
ai.metaData = a.metaData;
}
ai.applicationInfo = generateApplicationInfo(a.owner, flags, state, userId);
return ai;
}
示例4: generateServiceInfo
public static ServiceInfo generateServiceInfo(VPackage.ServiceComponent s, int flags,
PackageUserState state, int userId) {
if (s == null) return null;
if (!checkUseInstalledOrHidden(state, flags)) {
return null;
}
ServiceInfo si = new ServiceInfo(s.info);
// Make shallow copies so we can store the metadata safely
if ((flags & PackageManager.GET_META_DATA) != 0 && s.metaData != null) {
si.metaData = s.metaData;
}
si.applicationInfo = generateApplicationInfo(s.owner, flags, state, userId);
return si;
}
示例5: generateInstrumentationInfo
public static InstrumentationInfo generateInstrumentationInfo(
VPackage.InstrumentationComponent i, int flags) {
if (i == null) return null;
if ((flags & PackageManager.GET_META_DATA) == 0) {
return i.info;
}
InstrumentationInfo ii = new InstrumentationInfo(i.info);
ii.metaData = i.metaData;
return ii;
}
示例6: generatePermissionInfo
public static PermissionInfo generatePermissionInfo(
VPackage.PermissionComponent p, int flags) {
if (p == null) return null;
if ((flags & PackageManager.GET_META_DATA) == 0) {
return p.info;
}
PermissionInfo pi = new PermissionInfo(p.info);
pi.metaData = p.metaData;
return pi;
}
示例7: generatePermissionGroupInfo
public static PermissionGroupInfo generatePermissionGroupInfo(
VPackage.PermissionGroupComponent pg, int flags) {
if (pg == null) return null;
if ((flags & PackageManager.GET_META_DATA) == 0) {
return pg.info;
}
PermissionGroupInfo pgi = new PermissionGroupInfo(pg.info);
pgi.metaData = pg.metaData;
return pgi;
}
示例8: installLocked
private PluginInfo installLocked(String path) {
final boolean verifySignEnable = RePlugin.getConfig().getVerifySign();
final int flags = verifySignEnable ? PackageManager.GET_META_DATA | PackageManager.GET_SIGNATURES : PackageManager.GET_META_DATA;
// 1. 读取APK内容
PackageInfo pi = mContext.getPackageManager().getPackageArchiveInfo(path, flags);
if (pi == null) {
if (LogDebug.LOG) {
LogDebug.e(TAG, "installLocked: Not a valid apk. path=" + path);
}
RePlugin.getConfig().getEventCallbacks().onInstallPluginFailed(path, RePluginEventCallbacks.InstallResult.READ_PKG_INFO_FAIL);
return null;
}
// 2. 校验插件签名
if (verifySignEnable) {
if (!verifySignature(pi, path)) {
return null;
}
}
// 3. 解析出名字和三元组
PluginInfo instPli = PluginInfo.parseFromPackageInfo(pi, path);
if (LogDebug.LOG) {
LogDebug.i(TAG, "installLocked: Info=" + instPli);
}
instPli.setType(PluginInfo.TYPE_NOT_INSTALL);
// 若要安装的插件版本小于或等于当前版本,则安装失败
// NOTE 绝大多数情况下,应该在调用RePlugin.install方法前,根据云端回传的信息来判断,以防止下载旧插件,浪费流量
// NOTE 这里仅做双保险,或通过特殊渠道安装时会有用
// 注意:这里必须用“非Clone过的”PluginInfo,因为要修改里面的内容
PluginInfo curPli = RePluginOS.getPlugin(instPli.getName(), false);
if (curPli != null) {
if (LogDebug.LOG) {
LogDebug.i(TAG, "installLocked: Has installed plugin. current=" + curPli);
}
// 版本较老?直接返回
final int checkResult = checkVersion(instPli, curPli);
if (checkResult < 0) {
RePlugin.getConfig().getEventCallbacks().onInstallPluginFailed(path, RePluginEventCallbacks.InstallResult.VERIFY_VER_FAIL);
return null;
} else if (checkResult == 0){
instPli.setIsPendingCover(true);
}
}
// 4. 将合法的APK改名后,移动(或复制,见RePluginConfig.isMoveFileWhenInstalling)到新位置
// 注意:不能和p-n的最终释放位置相同,因为管理方式不一样
if (!copyOrMoveApk(path, instPli)) {
RePlugin.getConfig().getEventCallbacks().onInstallPluginFailed(path, RePluginEventCallbacks.InstallResult.COPY_APK_FAIL);
return null;
}
// 5. 从插件中释放 So 文件
PluginNativeLibsHelper.install(instPli.getPath(), instPli.getNativeLibsDir());
// 6. 若已经安装旧版本插件,则尝试更新插件信息,否则直接加入到列表中
if (curPli != null) {
updateOrLater(curPli, instPli);
} else {
mList.add(instPli);
}
// 7. 保存插件信息到文件中,下次可直接使用
mList.save(mContext);
return instPli;
}