Intent i;
PackageManager manager = getPackageManager();
try {
i = manager.getLaunchIntentForPackage(getBaseContext().getPackageName());
if (i == null)
throw new PackageManager.NameNotFoundException();
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
从应用程序更改语言后,当我在未签名的apk中使用此代码时,它将正常工作。
但是当我当时生成签名的apk时,此代码将无法工作。
请帮助我。
答案 0 :(得分:0)
没有提供特定的错误,但是我的答案是基于抛出PackageManager.NameNotFoundException()的假设。
该应用可以获取自己的程序包名称,如下所示:
Log.i(TAG, BuildConfig.APPLICATION_ID);
此外,我看不到代码的位置,但是我通常对使用getBaseContext()持谨慎态度。您可能需要对其进行更多研究,以查看它是否安全...