我有一个使用自定义Android启动器(android 4.2.2)的项目。发射器显示在Adobe Air中制作的游戏。现在我们想用Unity游戏扩展游戏列表。
为了展示游戏,我们使用PackageManager并过滤名称,例如:air.Bimii。两种技术的命名空间保持不变:air.BimiiMath,air.BimiiABC等。
问题是在使用时未列出Unity中制作的游戏:
private ArrayList<LocalAppDetail> initAppList(){
ArrayList<LocalAppDetail> res = new ArrayList<LocalAppDetail>();
PackageManager main_package_manager = main_activity.getPackageManager();
List<PackageInfo> packs = main_package_manager.getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
if ((p.versionName == null)) {
continue;
}
//Store Local Appdetail
LocalAppDetail newInfo = new LocalAppDetail();
newInfo.name = p.applicationInfo.loadLabel(main_package_manager).toString();
newInfo.pname = p.packageName;
newInfo.versionName = p.versionName;
newInfo.versionCode = p.versionCode;
newInfo.icon = p.applicationInfo.loadIcon(main_package_manager);
//Parse if the app meets requirements
if (newInfo.name.toLowerCase().contains(MiscData.apk_filter_text)) {
if(!newInfo.name.toLowerCase().contains("launcher")) {
if(!newInfo.name.toLowerCase().contains("rfid")){
res.add(newInfo);
}
}
}
}
//Store The Collection
return res;
}
但是当我尝试使用ADB时:adb shell pm list packages -f air这就是结果:
package:/data/app/air.BimiiFarm-1.apk=air.BimiiFarm
package:/data/app/air.BimiiFood-1.apk=air.BimiiFood
package:/data/app/air.nl.mediaheads.klassewinkel-1.apk=air.nl.mediaheads.klassewinkel
package:/system/app/Air.apk=com.adobe.air
package:/mnt/asec/nl.mediaheadsair.bimiiRekenen-1/pkg.apk=nl.mediaheadsair.bimiiRekenen
所以游戏就在那里(列表中的最后一个)。名称是pkg.apk,位置不同。你们有没有想过如何在列表中捕捉所有游戏,我们可以启动它们?
帮助会很棒!提前致谢
答案 0 :(得分:0)
更新叹息,这是Unity Player设置中的一个选项。应安装位置&#34;强制内部&#34;。什么是世界,世界是什么。