【发布时间】:2018-07-21 05:32:37
【问题描述】:
免安装应用只能发现设备上已安装应用的列表,除非 已安装的应用已让免安装应用发现它们。
还有a way 让即时应用可以发现我们的应用。
但是当我们使用getPackageManager()时,代码会崩溃
错误 = 很遗憾,TheAppName 即时应用已停止。
Logcat 中没有打印任何内容。以下是在调试控制台上打印的,
02/10 22:57:27: Launching instantapp
Side loading instant app.
Side loading instant app.
Launching deeplink: https://myapp.mycompany.com/example.
$ adb shell setprop log.tag.AppIndexApi VERBOSE
$ adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d https://myapp.mycompany.com/example -n "com.google.android.instantapps.supervisor/.UrlHandler"
Waiting for application to come online: com.mycompany.myapp.instantappscanner.test | com.mycompany.myapp.instantappscanner
Waiting for application to come online: com.mycompany.myapp.instantappscanner.test | com.mycompany.myapp.instantappscanner
Waiting for application to come online: com.mycompany.myapp.instantappscanner.test | com.mycompany.myapp.instantappscanner
Could not connect to remote process. Aborting debug session.
代码:
PackageManager packageManager = getPackageManager();
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d(TAG, "Installed package :" + packageInfo.packageName);
Log.d(TAG, "Source dir : " + packageInfo.sourceDir);
}
安卓版本:6.0.1
更新
不打印日志的原因是debugger was not attached to the App。来自 adb 控制台的日志显示:
02-11 21:06:56.347: E/AndroidRuntime(18033): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myapp.aninstantapp/com.mycompany.myapp.aninstantapp.feature.MainActivity}: java.lang.SecurityException: Method class android.content.pm.IPackageManager$Stub$Proxy.getInstalledApplications[int, int] not available to instant apps
堆栈跟踪显示即时应用程序不允许调用,但如果很少有应用程序自称为discoverable to instant apps,该怎么办?与其抛出异常,方法调用应该返回部分应用列表,其中仅包含那些让即时应用可以发现的应用?
小问题
需要帮助从免安装应用执行以下代码。
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
抛出异常,
SecurityException: IPackageManager$Stub$Proxy.getInstalledApplications[int, int] not available to instant apps
它不应该引发异常,因为根据文档(上)的支持,可以有很少的应用程序可以让即时应用程序发现它们自己。
【问题讨论】:
-
您在 logcat 中看到了哪些错误消息?您能否更新您的问题以包含这些内容?
-
我建议您向 Google 提交您的问题,然后在此处链接到它。这对所有人都有帮助,谢谢! issuetracker.google.com/issues/…
-
在您的每个命令周围放置 try/catch,看看您是否可以在应用程序关闭之前将异常打印到日志中,请在此处发布日志。
-
@Nilesh,我在使用 O+ 设备(模拟器 Android 版本 8.1 和 8.0.0)的应用程序中看不到崩溃。使用 pre-O 设备时可以看到崩溃。您是否也观察到相同的行为?如果是,我建议您向 Google 公共门户提交错误。
-
@ManmeetP 我在 Android 6 和 7 设备上进行了测试。该应用程序在那里崩溃。您能帮我解决如何向 Google 提交错误吗?
标签: android android-instant-apps