getlaunchintentforpackage返回null

问题描述

有人可以告诉我为什么为什么在变量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 rulesadd a <queries> element to your manifest 来声明您对哪些第三方应用感兴趣发现或分析。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...