private void WriteReceiverInfo(XmlWriter _xmlWriter) { #if !NATIVE_PLUGINS_LITE_VERSION if (m_supportedFeatures.UsesBilling) { _xmlWriter.WriteComment("Billing : Amazon Billing Receiver"); _xmlWriter.WriteStartElement("receiver"); { WriteAttributeString(_xmlWriter, "android", "name", null, "com.amazon.device.iap.ResponseReceiver"); _xmlWriter.WriteStartElement("intent-filter"); { WriteAction(_xmlWriter: _xmlWriter, _name: "com.amazon.inapp.purchasing.NOTIFY", _permission: "com.amazon.inapp.purchasing.Permission.NOTIFY" ); } _xmlWriter.WriteEndElement(); } _xmlWriter.WriteEndElement(); } // GCM receiver if (m_supportedFeatures.UsesNotificationService) { _xmlWriter.WriteComment("Notifications : GCM Receiver"); _xmlWriter.WriteStartElement("receiver"); { WriteAttributeString(_xmlWriter, "android", "name", null, "com.voxelbusters.nativeplugins.features.notification.serviceprovider.gcm.GCMBroadcastReceiver"); WriteAttributeString(_xmlWriter, "android", "permission", null, "com.google.android.c2dm.permission.SEND"); _xmlWriter.WriteStartElement("intent-filter"); { WriteAction(_xmlWriter: _xmlWriter, _name: "com.google.android.c2dm.intent.RECEIVE"); WriteAction(_xmlWriter: _xmlWriter, _name: "com.google.android.c2dm.intent.REGISTRATION"); WriteCategory(_xmlWriter: _xmlWriter, _name: PlayerSettings.GetBundleIdentifier()); } _xmlWriter.WriteEndElement(); } _xmlWriter.WriteEndElement(); } // Local notification receiver if (m_supportedFeatures.UsesNotificationService) { _xmlWriter.WriteComment("Notifications : Receiver for alarm to help Local Notifications"); _xmlWriter.WriteStartElement("receiver"); { WriteAttributeString(_xmlWriter, "android", "name", null, "com.voxelbusters.nativeplugins.features.notification.core.AlarmEventReceiver"); } _xmlWriter.WriteEndElement(); } #endif }
protected override void WritePermissions(XmlWriter _xmlWriter) { if (m_supportedFeatures.UsesAddressBook) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.READ_CONTACTS", _comment: "Address Book"); } if (m_supportedFeatures.UsesNetworkConnectivity) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.ACCESS_NETWORK_STATE", _comment: "Network Connectivity"); } #if !NATIVE_PLUGINS_LITE_VERSION if (m_supportedFeatures.UsesBilling) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.android.vending.BILLING", _comment: "Billing"); } if (m_supportedFeatures.UsesMediaLibrary) { if (m_supportedFeatures.MediaLibrary.usesCamera) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.CAMERA", _features: new Feature[] { new Feature("android.hardware.camera", false), new Feature("android.hardware.camera.autofocus", false) }, _comment: "Media Library"); } if (m_supportedFeatures.MediaLibrary.usesPhotoAlbum) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.apps.photos.permission.GOOGLE_PHOTOS"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.MANAGE_DOCUMENTS"); } } if (m_supportedFeatures.UsesNotificationService) { if (!NPSettings.Application.SupportedAddonServices.UsesOneSignal) { WritePermission(_xmlWriter: _xmlWriter, _name: string.Format("{0}.permission.C2D_MESSAGE", PlayerSettings.GetBundleIdentifier()), _protectionLevel: "signature", _comment: "For enabling GCM"); /* // https://groups.google.com/forum/#!topic/android-gcm/ecG-RfH-Aso * WriteUsesPermission(_xmlWriter: _xmlWriter, * _name: "android.permission.GET_ACCOUNTS"); */ WriteUsesPermission(_xmlWriter: _xmlWriter, _name: string.Format("{0}.permission.C2D_MESSAGE", PlayerSettings.GetBundleIdentifier())); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.c2dm.permission.RECEIVE"); } WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.WAKE_LOCK"); #if USES_NOTIFICATION_SERVICE if (NPSettings.Notification.Android.AllowVibration) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.VIBRATE", _comment: "Notifications : If vibration is required for notification"); } #endif } if (m_supportedFeatures.UsesGameServices) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.providers.gsf.permission.READ_GSERVICES", _comment: "GameServices : For getting content provider access."); } if (m_supportedFeatures.UsesWebView) { // Used for file uploads WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.CAMERA", _features: new Feature[] { new Feature("android.hardware.camera", false), new Feature("android.hardware.camera.autofocus", false) }, _comment: "Webview - Uses for file uploading from camera"); } #endif //Write common permissions here if (m_supportedFeatures.UsesNotificationService || NPSettings.Utility.Android.ModifiesApplicationBadge) { // For badge permissions WriteBadgePermissionsForAllPlatforms(_xmlWriter); } //Internet access - Add by default as many features need this. WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.INTERNET", _comment: "Required for internet access"); #if !NATIVE_PLUGINS_LITE_VERSION //Storage Access if (m_supportedFeatures.UsesMediaLibrary) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.WRITE_EXTERNAL_STORAGE", _comment: "For Saving to external directory - Save to Gallery Feature in MediaLibrary"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.READ_EXTERNAL_STORAGE"); } #endif }
protected override void WritePermissions(XmlWriter _xmlWriter) { if (m_supportedFeatures.UsesAddressBook) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.READ_CONTACTS", _comment: "Address Book"); } if (m_supportedFeatures.UsesNetworkConnectivity) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.ACCESS_NETWORK_STATE", _comment: "Network Connectivity"); } #if !NATIVE_PLUGINS_LITE_VERSION if (m_supportedFeatures.UsesBilling) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.android.vending.BILLING", _comment: "Billing"); } if (m_supportedFeatures.UsesMediaLibrary) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.CAMERA", _features: new Feature[] { new Feature("android.hardware.camera", false), new Feature("android.hardware.camera.autofocus", false) }, _comment: "Media Library"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.apps.photos.permission.GOOGLE_PHOTOS"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.MANAGE_DOCUMENTS"); } if (m_supportedFeatures.UsesNotificationService) { WritePermission(_xmlWriter: _xmlWriter, _name: string.Format("{0}.permission.C2D_MESSAGE", PlayerSettings.GetBundleIdentifier()), _protectionLevel: "signature", _comment: "For enabling GCM"); /* // https://groups.google.com/forum/#!topic/android-gcm/ecG-RfH-Aso * WriteUsesPermission(_xmlWriter: _xmlWriter, * _name: "android.permission.GET_ACCOUNTS"); */ WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.WAKE_LOCK"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: string.Format("{0}.permission.C2D_MESSAGE", PlayerSettings.GetBundleIdentifier())); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.c2dm.permission.RECEIVE"); #if USES_NOTIFICATION_SERVICE if (NPSettings.Notification.Android.AllowVibration) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.VIBRATE", _comment: "Notifications : If vibration is required for notification"); } #endif } if (m_supportedFeatures.UsesGameServices) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.providers.gsf.permission.READ_GSERVICES", _comment: "GameServices : For getting content provider access."); // Below permissions are no more required as we are targetting selective API's in Google Play Services. /*WriteUsesPermission(_xmlWriter: _xmlWriter, * _name: "android.permission.GET_ACCOUNTS"); * * WriteUsesPermission(_xmlWriter: _xmlWriter, * _name: "android.permission.USE_CREDENTIALS");*/ } #endif //Write common permissions here //Internet access - Add by default as many features need this. WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.INTERNET", _comment: "Required for internet access"); //Storage Access if (m_supportedFeatures.UsesSharing #if !NATIVE_PLUGINS_LITE_VERSION || m_supportedFeatures.UsesMediaLibrary || m_supportedFeatures.UsesTwitter #endif ) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.WRITE_EXTERNAL_STORAGE", _comment: "For Saving to external directory - Save to Gallery Feature in MediaLibrary / Used for sharing"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.READ_EXTERNAL_STORAGE"); } }
private void WriteProviderInfo(XmlWriter _xmlWriter) { // Provider _xmlWriter.WriteComment("Custom File Provider. Sharing from internal folders \"com.voxelbusters.nativeplugins.extensions.FileProviderExtended\""); _xmlWriter.WriteStartElement("provider"); { WriteAttributeString(_xmlWriter, "android", "name", null, "com.voxelbusters.nativeplugins.extensions.FileProviderExtended"); WriteAttributeString(_xmlWriter, "android", "authorities", null, string.Format("{0}.fileprovider", PlayerSettings.GetBundleIdentifier())); WriteAttributeString(_xmlWriter, "android", "exported", null, "false"); WriteAttributeString(_xmlWriter, "android", "grantUriPermissions", null, "true"); _xmlWriter.WriteStartElement("meta-data"); { WriteAttributeString(_xmlWriter, "android", "name", null, "android.support.FILE_PROVIDER_PATHS"); WriteAttributeString(_xmlWriter, "android", "resource", null, "@xml/nativeplugins_file_paths"); } _xmlWriter.WriteEndElement(); } _xmlWriter.WriteEndElement(); }
protected override void WritePermissions(XmlWriter _xmlWriter) { if (m_supportedFeatures.UsesAddressBook) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.READ_CONTACTS", _comment: "Address Book"); } if (m_supportedFeatures.UsesNetworkConnectivity) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.ACCESS_NETWORK_STATE", _comment: "Network Connectivity"); } #if !NATIVE_PLUGINS_LITE_VERSION if (m_supportedFeatures.UsesBilling) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.android.vending.BILLING", _comment: "Billing"); } if (m_supportedFeatures.UsesMediaLibrary) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.CAMERA", _features: new Feature[] { new Feature("android.hardware.camera", false), new Feature("android.hardware.camera.autofocus", false) }, _comment: "Media Library"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.apps.photos.permission.GOOGLE_PHOTOS"); } if (m_supportedFeatures.UsesNotificationService) { WritePermission(_xmlWriter: _xmlWriter, _name: string.Format("{0}.permission.C2D_MESSAGE", PlayerSettings.GetBundleIdentifier()), _protectionLevel: "signature", _comment: "For enabling GCM"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.GET_ACCOUNTS"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.WAKE_LOCK"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: string.Format("{0}.permission.C2D_MESSAGE", PlayerSettings.GetBundleIdentifier())); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "com.google.android.c2dm.permission.RECEIVE"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.VIBRATE", _comment: "Notifications : If vibration is required for notification"); } #endif //Write common permissions here //Internet access - Add by default as many features need this. WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.INTERNET", _comment: "Required for internet access"); //Storage Access if (m_supportedFeatures.UsesSharing #if !NATIVE_PLUGINS_LITE_VERSION || m_supportedFeatures.UsesMediaLibrary || m_supportedFeatures.UsesTwitter #endif ) { WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.WRITE_EXTERNAL_STORAGE", _comment: "For Saving to external directory - Save to Gallery Feature in MediaLibrary / Used for sharing"); WriteUsesPermission(_xmlWriter: _xmlWriter, _name: "android.permission.READ_EXTERNAL_STORAGE"); } }