Ярлык для запуска деятельности - PullRequest
5 голосов
/ 09 августа 2011

У меня есть приложение, которое создает ярлык следующим образом:

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-страницу, и путь к этому HTML-файлу находится внутри дополнительного значения "fileHtml".

Когда я нажимаю на ярлык, я получаю эту ошибку:

08-08 14: 15: 37.907: ОШИБКА / Панель запуска (165): Программа запуска не имеет разрешения на запуск Intent {act = android.intent.action.VIEW flg = 0x10000000 cmp = market.finestraprincipale / .MyAppActivity bnds = [3,217] [77,296] (есть дополнения)}. Убедитесь, что вы создали ГЛАВНЫЙ интент-фильтр для соответствующего действия или использовали экспортированный атрибут для этого действия. tag = ShortcutInfo (title = myFile) intent = Intent {act = android.intent.action.VIEW flg = 0x10000000 cmp = market.finestraprincipale / .MYWEBVIEW bnds = [3 217] [77 296] (имеет дополнительные функции)}

08-08 14: 15: 37.907: ОШИБКА / Средство запуска (165): java.lang.SecurityException: Отказ в разрешении: начало намерения {act = android.intent.action.VIEW flg = 0x10000000 cmp = market.finestraprincipale /. MYWEBVIEW bnds = [3,217] [77,296] (имеет дополнительные функции)} из ProcessRecord {405875c8 165: com.android.launcher / 10026} (pid = 165, uid = 10026) требует нуля

Как я могу исправить эти ошибки? Есть ли способ создать два экземпляра одного и того же приложения?

Например, я нахожусь внутри своего приложения, я создаю ярлык, я нажимаю кнопку «Домой», чтобы приложение переходило в фоновый режим, и когда я нажимаю на ярлык, я запускаю действие MYWEBVIEW, но внутри нового экземпляра моего приложения .... в общем, я могу одновременно открывать больше веб-просмотров.

Ответы [ 2 ]

7 голосов
/ 09 августа 2011

У вас есть следующие разрешения в вашем manifest.xml?

 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

Также обратите внимание, что для действия, которое вы пытаетесь запустить, определен следующий фильтр намерений:

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
</intent-filter>
0 голосов
/ 07 марта 2012

Я думаю, что вы должны добавить действие в вашей деятельности MYWEBVIEW в файле манифеста. Я пробую это, и это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...