我有一个将快捷方式固定到Android主屏幕的应用程序。我正在使用Intent和ShortcutManagerAPI分别为Android 7.1.2和更低版本以及Android 8.0和更高版本的设备固定快捷方式。
一切正常,直到小米发布了MIUI9。我在库存的Android和三星上测试了我的应用程序,并且运行良好。即使使用MIUI 8,它也能很好地工作。让我描述一下我在MIUI 9中面临的问题。
在MIUI 9中,快捷方式已成功固定到主屏幕,并且在执行此步骤之前没有任何问题。但是,当我尝试打开快捷方式时,提示“无法启动启动器”。该错误很可能意味着操作系统找不到打开该文件的应用程序。但是在我测试过的所有设备中都有一个内置的PDF阅读器。我什至安装了Adobe Reader和其他几个PDF阅读器,但仍然无法正常工作。这是罪魁祸首代码:
private void addShortcut(String path1, String pdfName) {
File file = new File(path1);
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW);
shortcutIntent.setDataAndType(path, "application/pdf");
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, pdfName);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this.getApplicationContext(),image));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
} else {
Toast.makeText(this, "Some error occurred!", Toast.LENGTH_SHORT).show();
}
}
由于该代码在Stock Android和许多自定义外观上都可以正常工作,因此我认为这不是我的代码的问题。MIUI 9包含某些内容。我已经浏览了整个Web,但是小米的网站或任何其他网站上都没有文档或与此问题相关的内容。
我做了很多调试,发现:
当我未在代码中设置数据类型并打开快捷方式时,它会要求我提供一个应用程序来打开快捷方式。然后,我选择了“ Adobe Reader”,但它仍然不起作用。Adobe Reader将打开,但不会打开文件。我得到一个标题为“ Adobe Reader”的工具栏,其下为白色屏幕。无法理解这种行为
试图将数据类型更改为类似的内容application/*,但仍然没有任何好处。
如果有人想尝试调试该应用,请访问以下仓库:https : //github.com/sidhuparas/PDFPinner
jeck猫
ibeautiful
相关分类