问题描述
有人可以告诉我为什么为什么在变量intent
上给我 null 吗?
public class MainActivity extends AppCompatActivity {
private static String action = "com.google.android.youtube";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onResume() {
super.onResume();
this.launch();
}
public void launch() {
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(action);
System.out.println("debug: " + intent);
//startActivity(intent);
}
}
我在像素4上对此进行了测试,但从未卸载YouTube。另外,sidequest列出应用程序并给我包 com.google.android.youtube
解决方法
对于许多(也许是大多数)PackageManager
方法,在 Android 11 及更高版本上,您需要考虑 package visibility rules 和 add a <queries>
element to your manifest 来声明您对哪些第三方应用感兴趣发现或分析。