2010-09-30 101 views
6

我正嘗試在Android中創建一個桌面快捷方式到我的某個活動。 我用的,在每一個政黨成員例如工作我已閱讀代碼:未能啓動快捷方式:應用程序未安裝在您的手機

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(); 

我添加的主要動作,以我的活動:

<activity android:label="@string/app_name" android:name=".MyActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
     </intent-filter> 
    </activity> 

結果是,應用程序沒有要推出!

在logcat的一切似乎罰款:

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) } 

和家庭告訴我,不安裝應用程序。

請幫助我,我完全失去了,花了幾個小時試圖解決這個問題,並閱讀所有的信息,我可以得到的。

非常感謝!

回答

9

試試這個:

  1. 擺脫<intent-filter>
  2. 擺脫ACTION_MAIN的,只是使用new Intent(this, MyActivity.class)
  3. 添加機器人:在清單
出口= 「true」 以你的元素
+0

ERROR /發射器(12197):發射器不必啓動意圖許可{FLG = 0x10000000的CMP = my.package.name/.MyActivity bnds = [125534] [235672](具有額外)}。確保爲相應的活動創建主要意圖過濾器,或使用此活動的導出屬性。 二月10日至1日:51:57.701:ERROR /發射器(12197):java.lang.SecurityException異常:權限拒絕:啓動意圖{FLG = 0x10000000的CMP = my.package.name/.MyActivity bnds = [125534] [235672] (具有額外)}從ProcessRecord {485b9b38 12197:com.sec.android.app.twlauncher/10005}(PID = 12197,UID = 10005)需要空 – 2010-10-01 00:53:54

+7

@ Profete162:嘗試添加'機器人:導出= 「真」'到您清單中的''元素。 – CommonsWare 2010-10-01 00:56:37

+1

Sem添加意圖時確定。 <操作機器人:名字=「android.intent.action.MAIN」 /> – 2010-10-01 00:58:53

9

,如果你有你的活動在AndroidManifest.xml中聲明瞭兩次,第一次作爲一個發射器,然後就宣佈這樣才能發生:

<activity android:name=".MyActivity" />