/AndroidManifestReflection

Package To edit AndroidManifest.xml in UnityEditor.

Primary LanguageC#MIT LicenseMIT

AndroidManifestReflection

GitHub release (latest SemVer)

UnityEditor上で、AndroidManifest.xmlを編集する為のパッケージ

概要

UnityEditor.Android.Extensions.dllに含まれる、非公開Class AndroidManifestをReflection経由で利用する為のパッケージです。 UnityEditor上で、AndroidManifest.xmlを編集する事ができます。 また、自分で使う為に必要なAPIを多少追加しています。

動作環境

Unity2019.4以上

インストール

コンソールからgitコマンドを使用する場合

git clone https://github.com/katsumasa/AndroidManifestReflection.git

Unity Package Managerを使用する場合

image

  1. ステータスバーのaddボタンをクリックします。
  2. パッケージを追加するためのオプションが表示されます。
  3. 追加メニューから「Add package from git URL」を選択します。テキストボックスと追加ボタンが表示されます。
  4. テキストボックスにhttps://github.com/katsumasa/AndroidManifestReflection.gitを入力し、Addをクリックします。

詳細はこちら

API Reference

AndroidManifestReflection

public AndroidManifestReflection(string path)

パラメーター 説明
path AndroidManifest.xmlファイルへのパス

説明

新規にAndroidManifestReflectionを作成します。 引数として、変更を加えるAndroidManifest.xmlへのパスを指定します。

using System.IO;
using UnityEditor.Android;
using UnityEditor.Build;
using UTJ.Android.Extensions;


public class AndroidManifestPost : IPostGenerateGradleAndroidProject
 {
      void IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject(string path)
      {
          var androidManifest = new AndroidManifestReflection(path);
      }
 }

SetDebuggableActivity

public bool SetDebuggableActivity(string activity,bool value)

パラメーター 説明
activity アクティビティ
value アトリビュートの値

説明

指定されたアクティビティへアトリビュートdebuggableを設定します。

androidManifest.SetDebuggableActivity("com.unity3d.player.UnityPlayerActivity", true);

AddApplicationMetaDataAttribute

public void AddApplicationMetaDataAttribute(string name, string value)

説明

パラメーター 説明
name 任意のデータの項目を表す名前
value データーの値

説明

親コンポーネントに追加で提供できる任意のデータの項目と値を設定します。

androidManifest.AddApplicationMetaDataAttribute("com.android.graphics.developerdriver.enable", "true");

Save

public void Save()

説明

変更を加えた内容をAndroidManifest.xmlへ書き戻します。

Sampleコード

下記にIPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProjectからAndroidManifest.xmlを編集するサンプルコードを記載します。

using System.IO;
using UnityEditor.Android;
using UTJ.Android.Extensions;


public class AndroidManifestPost : IPostGenerateGradleAndroidProject
{
    public int callbackOrder { get { return 0; } }

    void IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject(string path)
    {
        path = Path.Combine(path, "src");
        path = Path.Combine(path, "main");
        path = Path.Combine(path, "AndroidManifest.xml");

        var androidManifest = new AndroidManifestReflection(path);
        androidManifest.SetDebuggableActivity("com.unity3d.player.UnityPlayerActivity", true);
        androidManifest.AddApplicationMetaDataAttribute("com.android.graphics.developerdriver.enable", "true");
        androidManifest.Save();
    }

}

その他

フィードバックやコメントをお待ちしております。

木村 勝将:katsumasa@unity3d.com