0
我已经声明了自定义操作Intent
,并基于可以处理该应用程序的应用程序构建了该用户界面Intent
。现在我知道按钮点击应该启动的是哪个应用程序,如何防止选择器显示所有可能的应用程序。启动专用应用程序以防止意图选择器
final Intent intent = new Intent();
intent.setAction(CUSTOM_ACTION);
PackageManager packageManager = getPackageManager();
final List<ResolveInfo> activities = packageManager
.queryIntentActivities(intent, 0);
for (int i = 0; i < activities.size(); i++) {
final ResolveInfo info = activities.get(i);
Button b = new Button(this);
b.setText(info.loadLabel(packageManager));
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// This line was the solution
intent.setPackage(info.activityInfo.packageName);
startActivityForResult(intent, REQUEST_CODE);
}
});
mLayout.addView(b);
}
谢谢。
请允许*用户*选择*用户*设备上的*用户*应用程序中的哪一个*用于满足*用户*请求以使用*用户*数据,使用*用户*电池,带宽等。 – CommonsWare
@CommonsWare,并使用*用户*的应用内结算应用程序? [由于缺少一行'bindIntent.setPackage(“),因此[应用内结算可能很容易被黑客攻击](https://sufficientlysecure.org/index.php/2013/10/29/google-play-billing-hacked/) com.android.vending“)',这限制了IAB处理。同样的事情可能发生在这里(虽然不太可能,但你明白了)。 – ElementW