自从我尝试弄清楚如何开发一个使用 NFC 身份验证的 Android 解锁屏幕应用程序以来,已经有很长一段时间了。我正在使用 Nexus S。
经过在互联网上的多次研究,我得出的结论是,目前不支持将锁屏替换为第三方应用程序,我们需要修改平台才能进行像样的实现。
这就是为什么我开发了一个主屏幕应用程序,它给人一种解锁屏幕应用程序的错觉。但我的问题是我想在程序结束时重定向到默认启动器。
我首先尝试使用下面的代码,但问题是我可以在默认主屏幕和新应用程序之间进行选择
Intent goHome = new Intent();
i.setAction("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
startActivity(goHome);
所以我然后尝试使用下面的代码,但它似乎不起作用。
Intent goHome = new Intent(Intent.ACTION_MAIN);
goHome.setClassName("com.android.launcher", "com.android.launcher.Launcher");
startActivity(goHome);
我得到以下 logCat
无法找到显式活动类(com.android.launcher.launcher)
你知道为什么它不起作用吗?这是正确的做法吗?
Use:
PackageManager pm = getPackageManager();
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
if (lst != null) {
for (ResolveInfo resolveInfo : lst) {
try {
Intent home = new Intent("android.intent.action.MAIN");
home.addCategory("android.intent.category.HOME");
home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
startActivity(home);
break;
} catch (Throwable t) {
t.printStackTrace();
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)