List<ResolveInfo> resInfoList = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
该方法用于知道Intent的匹配结果,返回的结果从最匹配到最不匹配,也就是说第一个item就是resolveActivity(Intent, int)返回的结果
可以利用这个实现查看当前手机上所有的APP的主方法信息(这样就能知道当前手机装了哪些APP)
然后可以利用当前手机上所有的APP主方法信息来启动任意手机上的任意APP
示例代码:打印手机所有应用的主Activity信息,然后发现116是知乎就设了一个按钮启动知乎
public class PlayActivity extends AppCompatActivity {
private static final String TAG = "PlayActivity";
private List<ResolveInfo> mApps;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mApps = getPackageManager().q