Android 启动活动的快捷方式

Android 启动活动的快捷方式,android,permissions,android-intent,Android,Permissions,Android Intent,我有一个应用程序可以通过以下方式创建快捷方式: Intent shortcutIntent = new Intent(this, MYWEBVIEW.class); String fileHtml = trovaHtml(path); shortcutIntent.putExtra("appToLaunch", appId); shortcutIntent.putExtra("fileHtml", fileHtml); shortcutIntent.set

我有一个应用程序可以通过以下方式创建快捷方式:

Intent shortcutIntent = new Intent(this, MYWEBVIEW.class);
String fileHtml = trovaHtml(path);
shortcutIntent.putExtra("appToLaunch", appId);
shortcutIntent.putExtra("fileHtml", fileHtml);
shortcutIntent.setAction(Intent.ACTION_VIEW);

Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, dirAppName);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
    Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
this.sendBroadcast(addIntent);
我知道这段代码已被弃用,但让我们忘掉它

MYWEBVIEW不是我的应用程序的主要活动,它是一个打开脱机html页面的webview,该html文件的路径位于附加值“fileHtml”中

单击快捷方式时,出现以下错误:

08-08 14:15:37.907:错误/启动器(165):启动器没有启动Intent的权限{act=android.Intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MyAppActivity bnds=[3217][77296](具有额外功能)}。确保为相应的活动创建主意图筛选器,或为此活动使用导出的属性。tag=ShortcutInfo(title=myFile)intent=intent{act=android.intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MYWEBVIEW bnds=[3217][77296](具有额外功能)}

08-08 14:15:37.907:ERROR/Launcher(165):java.lang.SecurityException:权限拒绝:启动意图{act=android.Intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MYWEBVIEW bnds=[3217][77296](有附加项)}来自ProcessRecord{405875c8 165:com.android.Launcher/10026}(pid=165,uid=10026)的进程记录要求为空

如何修复这些错误?有没有办法创建同一应用程序的两个实例


例如,我在我的应用程序中创建了一个快捷方式,我按下home按钮,应用程序进入后台,当我单击快捷方式时,我启动MYWEBVIEW活动,但在我的应用程序的一个新实例中……这样基本上我可以同时打开更多的WebView。

您在
manifest.xml
中是否具有以下权限


还可以看到您尝试启动的活动定义了以下意图过滤器:

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
</intent-filter>

我认为您必须添加 行动
在清单文件中的MYWEBVIEW活动中。我尝试了此操作,它正常工作。

是的,我没有收到创建快捷方式的错误,我在单击快捷方式时收到了此错误……可能是因为它调用的活动不是主活动……至少我想……尝试添加
权限。INTERNET
。可能是快捷方式正在尝试启动浏览器(因为您正在尝试打开URL)。您是否按照建议对
WebViewClient
类进行了分类?是的,我正在同时进行这两项工作……如果我在应用程序中从主活动浏览到MYWEBVIEW,一切正常,它会打开正确的html页面……但是如果我试图从快捷方式打开它,我会出现错误……快捷方式能否打开非主活动?因为如果我将快捷方式的目标更改为我的应用程序的主要活动,它将起作用:(但我需要直接转到另一个问题好吧,我意识到我在猜测这一点,这并不理想,但似乎没有其他人在这一点上跳跃。你能尝试在你的
MYWEBVIEW
活动中添加一个吗?太好了!我会更新我的答案,以便它反映出你问题的解决方案。