1

我尝试对其进行编码,我尝试使用 google 和 stackoverflow 解决它,但没有找到 :=) 所以希望其他人有更好的主意,我不确定我是否一切都正确:

我有 2 个应用程序:广告(主应用程序)/adfree-pro(仅许可启动没有广告的广告应用程序;P)

所以问题是,我想在启动器中有一个专业版(带有专业图标),它启动普通广告应用程序,它是(普通广告应用程序)不在启动器中。

我尝试从启动器中删除广告应用程序(由于我的研究应该将其从启动器中删除)

pkgMgr.setComponentEnabledSetting(new ComponentName(PACKAGE_NAME, PACKAGE_NAME + ".Main"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

结果是:启动器中的图标是正确的;)但是在手机上找不到应用程序,启动,启动,即使没有启动器专业活动快捷方式。它似乎在那里(可以创建快捷方式),但是当我尝试启动它时,我因活动异常而崩溃。

02-18 14:38:59.237: 错误/AndroidRuntime(9941): 由: android.content.ActivityNotFoundException: 找不到明确的活动类 {PACKAGE_NAME/PACKAGE_NAME.Main}; 您是否在 AndroidManifest.xml 中声明了此活动?

这似乎不属于(错误消息)它看起来应用程序发生了更多的事情,而不仅仅是简单地删除了启动器中的条目。

非常感谢大家,对这种情况的每一种解决方法都表示赞赏:)最好的问候:)

4

2 回答 2

0

但该应用程序无法在手机上找到、启动、启动,即使没有启动器专业活动快捷方式。

不是应用程序,而是活动。

因此,如果您的LAUNCHER活动是BaseActivity,您可以创建类似的东西BaseFakeActivity(不要忘记将其设置为LAUNCHER清单而不是您的BaseActivity),并且唯一的功能是启动您的BaseActivity,然后是finish()它自己。

现在您可以隐藏您的BaseFakeActivity,但您仍然可以与您的BaseActivity.

PS:这样做后不要忘记测试您的应用程序的行为;)

于 2013-01-26T16:23:16.383 回答
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(),这可能是某种许可证检查

当然,您也可以将应用程序的通用代码开发为库项目,然后以 2 种风格分发它,而无需复制代码

于 2011-02-18T18:36:28.203 回答