我尝试编码,我尝试用谷歌和stackoverflow解决它,没有发现:=)所以希望别人有更好的主意,我不确定我是否把一切都搞定了:
我有2个应用程序:ad(主应用程序)/ adfree-pro(只是许可证启动没有广告的广告应用程序; P)
所以问题是,我想在启动器中安装一个专业版(带专业版图标),启动普通广告应用,这是(普通广告应用)不在启动器中。< /强>
我尝试从启动器中删除广告应用程序(由于我的研究应该只能从启动器中删除它)
pkgMgr.setComponentEnabledSetting(新的ComponentName(PACKAGE_NAME,PACKAGE_NAME +“。主”), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
导致:启动器中的图标正确;)但是无法在手机上启动,启动,启动应用程序,甚至没有启动器专业活动快捷方式。它似乎在那里(可以创建快捷方式)但是当我尝试启动它时,我会因活动异常而崩溃。
02-18 14:38:59.237:ERROR / AndroidRuntime(9941):引起:android.content.ActivityNotFoundException:无法找到显式活动类{PACKAGE_NAME / PACKAGE_NAME.Main};你有没有在AndroidManifest.xml中声明这个活动?
似乎不属于(错误消息) 看起来应用程序发生了更多,而不仅仅是删除了启动器中的条目。
非常感谢, 这种情况的每个解决方法都赞赏:) 最好的问候:)
答案 0 :(得分:0)
您无法安装应用并隐藏它的启动器图标。我用我的应用程序处理它的方式与我的类似,我不会尝试对抗图标,而是可以使用以太网图标启动应用程序。显然你不必在主(免费)应用程序中做,从你的专业版图标启动应用程序的代码将如下所示:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
// check if main app is installed. If yes then start it
if (appExists()) {
Log.d(TAG, "Started main app from Pro");
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("myapp://com.myapp.main"));
startActivity(intent);
finish();
} else {
// display view with link back to Market
onAppNotExists();
}
}
由您来实施appExists()
,这可能是某种许可检查
当然,您也可以将应用程序的公共代码开发为library project,然后以2种方式分发,而无需复制代码
答案 1 :(得分:0)
但是手机上找不到应用程序,启动,启动, 甚至没有启动器专业活动快捷方式。
不是申请,而是活动。
因此,如果您的LAUNCHER
活动为BaseActivity
,您可以创建BaseFakeActivity
之类的内容(不要忘记在清单中将其设置为LAUNCHER
而不是您的BaseActivity
},其唯一的功能是启动您的BaseActivity
,然后启动finish()
。
现在您可以隐藏BaseFakeActivity
,但您仍然可以与BaseActivity
进行互动。
P.S。:不要忘记以这种方式测试你的应用程序的行为;)