Пример #1
0
    public static void UpdateManifest()
    {
        if (!AndroidNativeSettings.Instance.KeepManifestClean)
        {
            return;
        }

        AN_ManifestManager.Refresh();

        int UpdateId = 0;
        AN_ManifestTemplate    Manifest         = AN_ManifestManager.GetManifest();
        AN_ApplicationTemplate application      = Manifest.ApplicationTemplate;
        AN_ActivityTemplate    launcherActivity = application.GetLauncherActivity();



        ////////////////////////
        //Google Play Service API
        ////////////////////////
        AN_PropertyTemplate games_version = application.GetOrCreatePropertyWithName("meta-data", "com.google.android.gms.version");

        if (AndroidNativeSettings.Instance.EnablePSAPI)
        {
            games_version.SetValue("android:value", "@integer/google_play_services_version");
        }
        else
        {
            application.RemoveProperty(games_version);
        }

        ////////////////////////
        //GooglePlayServicesAPI
        ////////////////////////

        UpdateId++;
        AN_PropertyTemplate games_APP_ID = application.GetOrCreatePropertyWithName("meta-data", "com.google.android.gms.games.APP_ID");

        if (!AndroidNativeSettings.Instance.GooglePlayServicesAPI)
        {
            application.RemoveProperty(games_APP_ID);
        }
        else
        {
            games_APP_ID.SetValue("android:value", "@string/app_id");
        }



        ////////////////////////
        //GoogleCloudSaveAPI
        ////////////////////////
        UpdateId++;
        AN_PropertyTemplate appstate_APP_ID = application.GetOrCreatePropertyWithName("meta-data", "com.google.android.gms.appstate.APP_ID");

        if (AndroidNativeSettings.Instance.GoogleCloudSaveAPI)
        {
            appstate_APP_ID.SetValue("android:value", "@string/app_id");
            AndroidNativeSettings.Instance.EnableAppStateAPI = true;
        }
        else
        {
            AndroidNativeSettings.Instance.EnableAppStateAPI = false;
            application.RemoveProperty(appstate_APP_ID);
        }


        ////////////////////////
        //AnalyticsAPI
        ////////////////////////
        UpdateId++;
        if (AndroidNativeSettings.Instance.AnalyticsAPI)
        {
            //Nothing to do
        }


        ////////////////////////
        //PushNotificationsAPI
        ////////////////////////
        UpdateId++;
        AN_PropertyTemplate GcmBroadcastReceiver   = application.GetOrCreatePropertyWithName("receiver", "com.androidnative.gcm.GcmBroadcastReceiver");
        AN_PropertyTemplate GcmIntentService       = application.GetOrCreatePropertyWithName("service", "com.androidnative.gcm.GcmIntentService");
        AN_PropertyTemplate permission_C2D_MESSAGE = Manifest.GetOrCreatePropertyWithName("permission", "com.example.gcm.permission.C2D_MESSAGE");

        if (AndroidNativeSettings.Instance.PushNotificationsAPI)
        {
            GcmBroadcastReceiver.SetValue("android:permission", "com.google.android.c2dm.permission.SEND");

            AN_PropertyTemplate intent_filter = GcmBroadcastReceiver.GetOrCreateIntentFilterWithName("com.google.android.c2dm.intent.RECEIVE");
            AN_PropertyTemplate category      = intent_filter.GetOrCreatePropertyWithTag("category");
            category.SetValue("android:name", PlayerSettings.bundleIdentifier);

            permission_C2D_MESSAGE.SetValue("android:protectionLevel", "signature");
        }
        else
        {
            application.RemoveProperty(GcmBroadcastReceiver);
            application.RemoveProperty(GcmIntentService);
            Manifest.RemoveProperty(permission_C2D_MESSAGE);
        }



        ////////////////////////
        //GoogleMobileAdAPI
        ////////////////////////
        UpdateId++;
        AN_ActivityTemplate AdActivity = application.GetOrCreateActivityWithName("com.google.android.gms.ads.AdActivity");



        if (AndroidNativeSettings.Instance.GoogleMobileAdAPI)
        {
            if (launcherActivity != null)
            {
                AN_PropertyTemplate ForwardNativeEventsToDalvik = launcherActivity.GetOrCreatePropertyWithName("meta-data", "unityplayer.ForwardNativeEventsToDalvik");
                ForwardNativeEventsToDalvik.SetValue("android:value", "true");
            }

            AdActivity.SetValue("android:configChanges", "keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize");
        }
        else
        {
            application.RemoveActivity(AdActivity);
        }



        ////////////////////////
        //GoogleButtonAPI
        ////////////////////////
        UpdateId++;
        if (AndroidNativeSettings.Instance.GoogleButtonAPI)
        {
            //Nothing to do
        }



        ////////////////////////
        //LocalNotificationsAPI
        ////////////////////////
        AN_PropertyTemplate LocalNotificationReceiver = application.GetOrCreatePropertyWithName("receiver", "com.androidnative.features.notifications.LocalNotificationReceiver");

        if (AndroidNativeSettings.Instance.LocalNotificationsAPI)
        {
        }
        else
        {
            application.RemoveProperty(LocalNotificationReceiver);
        }

        ////////////////////////
        //ImmersiveModeAPI
        ////////////////////////
        if (AndroidNativeSettings.Instance.ImmersiveModeAPI)
        {
            //Nothing to do
        }


        ////////////////////////
        //ApplicationInformationAPI
        ////////////////////////
        if (AndroidNativeSettings.Instance.ApplicationInformationAPI)
        {
            //Nothing to do
        }

        ////////////////////////
        //ExternalAppsAPI
        ////////////////////////
        if (AndroidNativeSettings.Instance.ExternalAppsAPI)
        {
            //Nothing to do
        }


        ////////////////////////
        //PoupsandPreloadersAPI
        ////////////////////////
        if (AndroidNativeSettings.Instance.PoupsandPreloadersAPI)
        {
            //Nothing to do
        }

        ////////////////////////
        //InAppPurchasesAPI
        ////////////////////////
        if (AndroidNativeSettings.Instance.InAppPurchasesAPI)
        {
            //Nothing to do
        }


        ////////////////////////
        //CameraAPI
        ////////////////////////
        if (AndroidNativeSettings.Instance.CameraAPI)
        {
            //Nothing to do
        }


        ////////////////////////
        //GalleryAPI
        ////////////////////////
        if (AndroidNativeSettings.Instance.GalleryAPI)
        {
            //Nothing to do
        }

        List <string> permissions = GetRequiredPermissions();

        foreach (string p in permissions)
        {
            Manifest.AddPermission(p);
        }

        AN_ManifestManager.SaveManifest();

        SocialPlatfromSettingsEditor.UpdateManifest();
    }