コード例 #1
0
        private void ReportBuildTargetPermissions()
        {
            List <string> permissionsList  = new List <string>();
            List <string> featuresList     = new List <string>();
            string        manifestFilePath = Path.Combine(s_StagingArea, s_AndroidManifest);

            if (EditorUserBuildSettings.androidBuildSystem == AndroidBuildSystem.Gradle)
            {
                manifestFilePath = (EditorUserBuildSettings.androidBuildType == AndroidBuildType.Release)
                    ? Paths.Combine(s_GradlePath, "release", s_AndroidManifest)
                    : Paths.Combine(s_GradlePath, "debug", s_AndroidManifest);
            }

            XmlDocument manifestFile = new XmlDocument();

            if (File.Exists(manifestFilePath))
            {
                manifestFile.Load(manifestFilePath);
                XmlNodeList permissions = manifestFile.GetElementsByTagName("uses-permission");
                XmlNodeList features    = manifestFile.GetElementsByTagName("uses-feature");
                foreach (XmlNode permission in permissions)
                {
                    XmlNode attribute = permission.Attributes ? ["android:name"];
                    if (attribute != null)
                    {
                        permissionsList.Add(attribute.Value);
                    }
                }

                foreach (XmlNode feature in features)
                {
                    XmlNode attribute = feature.Attributes ? ["android:name"];
                    if (attribute != null)
                    {
                        featuresList.Add(attribute.Value);
                    }
                }

                EditorAnalytics.SendEventBuildTargetPermissions(new AndroidBuildPermissions()
                {
                    features    = featuresList.ToArray(),
                    permissions = permissionsList.ToArray()
                });
            }
        }