Android 主介面長按建立快捷方式
阿新 • • 發佈:2019-02-09
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來中轉!