Estoy tratando de crear un acceso directo de escritorio a una de mis actividades en Android. utilizo el código que funciona en todos los ejemplo tuto que he leído:No se pudo iniciar el acceso directo: la aplicación no está instalada en su teléfono
final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
ComponentName name = new ComponentName(getPackageName(), ".MyActivity");
shortcutIntent.setComponent(name);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "blabla");
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
finish();
Y añadió la acción principal de mi actividad:
<activity android:label="@string/app_name" android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
El resultado es que la aplicación no quiere poner en marcha !
En el Logcat todo parece bien:
10-01 01:17:51.591: INFO/ActivityManager(2424): Starting activity: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.package.name/.MyActivity bnds=[125,384][235,522] (has extras) }
y el hogar me dice que la aplicación no está instalada.
Por favor, ayúdenme, estoy totalmente perdido y paso unas horas tratando de resolver el problema y leer toda la información que pueda obtener.
¡Muchas gracias!
ERROR/Launcher (12197): Iniciador no tiene el permiso para poner en marcha Intención {flg = 0x10000000 cmp = my.package.name/.MyActivity bnds = [125534] [235672] (tiene extras)}. Asegúrese de crear un filtro de intención PRINCIPAL para la actividad correspondiente o use el atributo exportado para esta actividad. 10-01 02: 51: 57.701: ERROR/Launcher (12197): java.lang.SecurityException: denegación de permiso: inicio de la intención {flg = 0x10000000 cmp = my.package.name/.MyActivity bnds = [125,534] [235,672] (tiene extras)} de ProcessRecord {485b9b38 12197: com.sec.android.app.twlauncher/10005} (pid = 12197, uid = 10005) requiere nulo –
@ Profete162: intente agregar 'android: exported =" true "' a su elemento '' en el manifiesto. –
CommonsWare
Sem OK al agregar la intención. –