/// <summary>
        /// Initializes <see cref="AndroidBluetoothMultiplayer"/> class.
        /// Retrieves a pointer to the Java plugin object.
        /// Initalizes the singleton instance on the first usage of the class.
        /// </summary>
        static AndroidBluetoothMultiplayer() {
            _plugin = null;
            _isPluginAvailable = false;

            try {
                UpdateInstance();
            } catch {
                // Happens when this static constructor is called from a GameObject being created.
                // Just ignoring, as this is intended.
            }

#if !UNITY_EDITOR && UNITY_ANDROID
            // Retrieve BluetoothMediator singleton instance
            try {
                using (AndroidJavaClass mediatorClass = new AndroidJavaClass(kPluginClassName)) {
                    if (!mediatorClass.IsNull()) {
                        _plugin = mediatorClass.CallStatic<AndroidJavaObject>("getSingleton");
                        _isPluginAvailable = !_plugin.IsNull();
                    }
                }
            } catch {
                Debug.LogError("AndroidBluetoothMultiplayer initialization failed. Probably .jar not present?");
                throw;
            }
#endif
        }