1
我試圖讓用戶選擇在按下我的小部件時打開哪個應用程序。看來這樣做的方式是使用ACTION_PICK_ACTIVITY並以某種方式保存他們選擇的值。Android:與AppWidget一起使用ACTION_PICK_ACTIVITY來確定要打開哪個應用程序
http://www.openintents.org/en/node/263似乎很有幫助,但並未顯示如何從Intent中提取數據以便將其保存以供將來的Intent創建。
我該如何輕鬆地讓用戶從安裝在他或她手機上的應用程序列表中進行選擇,然後保存所選擇的包/類用於未來的意圖創建?
View.OnClickListener activity_picker_listener = new View.OnClickListener(){
@Override
public void onClick(View v){
// Pick an application
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY);
pickIntent.putExtra(Intent.EXTRA_INTENT, mainIntent);
startActivityForResult(pickIntent, 0);
}
};
// The result is obtained in onActivityResult:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
// save the application that we just picked
}
}
謝謝,這有幫助,但我的問題是如何正確地將該包名保存在首位? – 2012-03-13 13:58:03
檢查更新。 – 2012-03-18 04:39:50
除非將標誌PackageManager.MATCH_DEFAULT_ONLY添加到您對queryIntentActivities()的調用中,否則您將得到一個空的結果。因此,正確的調用是: 列表 applications = getPackageManager()。queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY); –
2015-05-23 02:41:56