1. 程式人生 > >Android 主介面長按建立快捷方式

Android 主介面長按建立快捷方式

Android中建立快捷方式主要有兩種方式,一是在程式碼中直接新增生成桌面快捷方式的程式碼;二是通過小部件新增;

這篇文章主要講第二種方法!

1、通過在AndroidManifest檔案中為Activity新增

<intent-filter>                    
            <action android:name="android.intent.action.CREATE_SHORTCUT"/>                
</intent-filter>

新增之後,長按桌面,小部件中會有你應用的圖標出現!這才完成了第一步!

2、通過第一步之後,你是不能夠把快捷方式拖到桌面上的,只會進入到指定的Activity,其實生成圖示是在Activity內用程式碼完成的!

在oncreate中首先判斷是否是建立快捷方式的action:

private boolean isCreateShortcut(Intent intent){
		return SHORCUTACTION.equals(intent.getAction())?true:false;
	}

如果是的話就建立快捷方式:
	private void creareShorcut(){
		Log.e(TAG, " ---------creareShorcut----------");
		Intent addShortCut = new Intent();                 
        //快捷方式的名稱                 
        addShortCut.putExtra(Intent.EXTRA_SHORTCUT_NAME , "快捷方式名稱");                 
        //桌面上顯示的圖片                
        Parcelable icon = ShortcutIconResource.fromContext(this, R.drawable.cacaxi);                 
        addShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);     
        //點選快捷方式時,需要啟動的Activity,但是應該是該應用的主Activity;或者也可以是到網址,電話等         
        Intent toIntent = new Intent(mContext,MainActivity.class);
        Intent call112 =   
                new Intent(Intent.ACTION_CALL,Uri.parse("tel://112")); 
        addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,toIntent);                 
        //最後一步,傳送                
        setResult(RESULT_OK, addShortCut); 
	}

需要注意的是啟動的Activity,應該是該應用的主Activity,因為我用其他的Activity試了很多的方式也不能夠啟動,沒有深入的去研究,如果有誰研究過可以分享下!

那現在就有個問題了,怎麼才能到指定的Activity?

答案就是在Intent中新增引數,通過主Activity來中轉!