【问题标题】:Hiding an icon programmatically unity c#以编程方式隐藏图标unity c#
【发布时间】:2016-12-08 09:19:43
【问题描述】:

我一直在尝试使用 c# 统一隐藏应用程序图标。我尝试实现下面的android代码:

    PackageManager p = getPackageManager();
    ComponentName componentName = new ComponentName(this,com.apps.MainActivity.class); // activity which is first time open in manifiest file which is declare as <category android:name="android.intent.category.LAUNCHER" />
    p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

所以,我的代码是:

AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject ca = up.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject packageManager = ca.Call<AndroidJavaObject>("getPackageManager");
AndroidJavaClass cn = new AndroidJavaClass ("android.content.ComponentName");

launchIntent = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage",bundleId);
packageManager.Call<AndroidJavaObject>("setComponentEnabledSetting",cn,packageManager.Get<int>("COMPONENT_ENABLED_STATE_DISABLED"),packageManager.Get<int>("DONT_KILL_APP"));
ca.Call ("startActivity", launchIntent);

cn.Dispose ();
up.Dispose();
ca.Dispose();
packageManager.Dispose();
launchIntent.Dispose();

当我为 android 构建和运行时,指示 packagemanager 的行没有被调用。我在这里想念什么?请帮忙!

【问题讨论】:

    标签: c# android unity3d package-managers


    【解决方案1】:

    如果您有用于 apk 的清单文件,则通过删除清单中的启动器类别,您可以隐藏您的应用。只有声明为启动器的应用才会在屏幕上可见。 我可以知道您为什么要以编程方式隐藏它们吗?

    【讨论】:

      【解决方案2】:

      如果您有用于 apk 的清单文件,则通过删除清单中的启动器类别,您可以隐藏您的应用程序。只有声明为启动器的应用程序才会在屏幕上可见。您需要使用广播接收器来启动没有启动器类别的应用程序。 我可以知道您为什么要以编程方式隐藏它们吗?为什么不为包管理器创建一个 Java 对象,就像您为当前活动所做的那样。

      【讨论】:

        猜你喜欢
        • 2013-10-07
        • 2019-01-24
        • 2011-02-19
        • 2021-04-26
        • 2011-08-10
        • 2011-12-03
        • 1970-01-01
        • 2011-12-29
        相关资源
        最近更新 更多