我想添加主屏幕快捷方式到個人聊天室,在我的應用程序。這裏是我的代碼,這樣做:添加主屏幕快捷方式時,奇怪的力量在關閉acore
Intent roomIntent = roomIntent(room).putExtra("shortcut", true);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, roomIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, room.name);
Parcelable resource = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, resource);
setResult(RESULT_OK, intent);
finish();
當我去的快捷方式添加到我的主屏幕上,我得到一個強制關閉,而不是我自己的過程,但在com.android.acore(!)。我運行了調試器並驗證了我的代碼一直執行到完成調用()。
如果我這樣做,而不是爲EXTRA_SHORTCUT_ICON:
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, R.drawable.icon);
它工作正常,並將該快捷方式,在彈出的快捷正確的行爲 - 但當然的快捷方式有普通的Android圖標,不是我的,因爲這不是指定圖標的正確方法。
當我看看其他應用程序的源代碼,以及在官方Android參考區域中的the one example,我的代碼看起來完全相同。我的圖標是我用於應用程序主圖標的標準48x48 png,沒有任何問題。我在運行股票1.6的模擬器上驗證了這個問題,沒有測試過其他版本。
我不知道我在做什麼錯。有任何想法嗎?
你是否在模擬器上執行你的代碼?大多數情況下,當我在模擬器上部署我的應用程序時,我在android.acore上獲得了一些'強制關閉'或其他。但它不影響我的應用程序,當我在真實設備上進行調試時,我沒有得到它們。我只是忽略它們... – tbruyelle 2010-01-02 23:53:27
我也在我的手機上測試了這個,它運行着最新的CyanogenMod。它得到相同的錯誤。我去了模擬器,以確保它不是CyanogenMod特定的東西。在這兩種情況下,這個錯誤也是100%一致的,所以我不認爲它是特定於設備或模擬器的東西。 – Konklone 2010-01-03 00:48:20