2012-03-05 105 views
1

我有一個可以執行各種功能的應用程序。我想在我的android手機主屏幕中爲最常用的功能創建快捷方式。在HomeScreen中創建快捷方式

任何人都可以請告訴我(帶代碼和代碼實際工作)如何創建快捷方式?我看過很多代碼,但我無法理解。請解釋我。

我已經使用了下面的代碼=>主要問題是在主屏幕上創建了快捷方式。但是,當我點擊它像的一個吐司顯示消息「未安裝此應用在手機上」。而在日誌中的錯誤消息是

1)WARN/ActivityManager(58):權限 否認:checkComponentPermission ()reqUid = 10046 2)WARN/ActivityManager(58):權限拒絕:啓動Intent {act = android.intent.action.VIEW flg = 0x10000000 cmp = aaa/.s bnds = [3,240] [77,319]} ProcessRecord {44f19b88 123:com.android.launcher/10025}(pid = 123,uid = 10025)需要null 3)錯誤/啓動器(123):啓動器沒有啓動權限Intent {act = android.intent.action .VIEW flg = 0x10000000 cmp = aaa/.s bnds = [3,240] [77,319]}。確保爲相應的活動創建主要意圖過濾器,或使用此活動的導出屬性。 tag = ShortcutInfo(title = Sukumar)intent = Intent {act = android.intent.action.VIEW flg = 0x10000000 cmp = aaa/.s bnds = [3,240] [77,319]} 4)ERROR/Launcher(123):java .lang.SecurityException:Permission Denial:啓動Intent {act = android.intent.action.VIEW flg = 0x10000000 cmp = aaa/.s bnds = [3,240] [77,319]} ProcessRecord {44f19b88 123:com.android.launcher/10025}(PID = 123,UID = 10025)需要空


`package a.a.a; 

import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 

public class ShortActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Intent i=new Intent(this,s.class); 
    Intent j=new Intent(); 
    j.putExtra(Intent.EXTRA_SHORTCUT_INTENT, i); 
    j.putExtra(Intent.EXTRA_SHORTCUT_NAME,"Sukumar"); 
    j.putExtra(Intent.EXTRA_SHORTCUT_ICON,R.drawable.icon); 
    j.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    this.sendBroadcast(j); 


} 


}` 

回答

0

要創建Android主屏幕上的應用程序快捷方式,我們只需要火一個簡單的意圖與行動com.android.launcher.action.INSTALL_SHORTCUT。快捷方式的名稱和圖標,我們可以把Intent的exrta參數。
檢查下面的方法:

Intent intent = new Intent(); 
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intentActivity); 
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, textShortcut); 
Parcelable iconResource = (Parcelable) bitmap; 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconResource); 
intent.putExtra("duplicate", duplicateNeed); // (duplicateNeed=false) 
// will not allow the 
// duplicate same name 
// shortcuts. 
intent.setAction(INSTALL_SHORTCUT_ACTION); 
getApplicationContext().sendBroadcast(intent);