如何從我的構件創建預裝應用程序的快捷方式?構建已安裝應用程序的快捷方式的小部件
0
A
回答
0
你想要一些靜態快捷方式嗎?只需預先安裝應用程序?
這是我創造了什麼樣子的主屏幕上的快捷方式:
RemoteViewsWidget views = new RemoteViewsWidget(context, R.layout.your_layout);
哪裏RemoteViewsWidget是您RemoteViews的子類。您將希望該上下文用於在RemoteViewsWidget類中完成的操作。
在RemoteViewsWidget類的方法,我設置了圖片和文字的「捷徑」:
setImageViewUri(imageResId, uri);
setTextViewText(textResId, displayName);
哪裏imageResId是你想成爲您的略圖和URI指向佈局資源圖像(我使用了本地保存的圖像源文件)。對於textResId和displayName類似。
setOnClickPendingIntent(layoutViewId, PendingIntent.getActivity(
context, requestCode, intent, flags));
這裏,layoutViewId是你的圖像視圖和文本視圖住在父母的佈局,這個佈局是被選中時什麼觸發的意圖。等待的意圖是選擇佈局時執行的內容 - 只需填寫您的上下文,要啓動的活動的意圖和標誌(如有必要)。
要找到你從應用程序需要啓動他們什麼,你可能想使用PackageManager:
List<ResolveInfo> appInfos = context.getPackageManager().queryIntentActivities(
new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER), 0);
以獲取在啓動所有應用程序的解決信息的列表。您可以從列表中獲得所需的全部內容,以便實現上述setOnClickPendingIntent的意圖。如果您只需要這些應用的子集,則可以應用不同的或更多的類別,不同的操作等。或者,您可以只使用已知的軟件包或活動。
您已經創建了遠程視圖後,您需要更新部件,無論是在實用的方法或在您的微件提供者的子類:
views.updateWidget(); // update resources with image, text and intent as above
AppWidgetManager.getInstance(context.getApplicationContext()).updateAppWidget(
widgetId, views);