Exemplo n.º 1
0
        /// <summary>
        /// Make a string from internal properties
        /// </summary>
        /// <returns>String of Extractor object</returns>
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Hostname:Port - ");
            sb.Append(HostName);
            sb.Append(":");
            sb.AppendLine(ListeningPort.ToString());
            sb.Append("Site Code: ");
            sb.AppendLine(SiteCode);
            sb.Append("Vista File: ");
            sb.AppendLine(VistaFile);
            sb.Append("Timestamp: ");
            sb.AppendLine(Timestamp.ToString());

            return(sb.ToString());
        }
Exemplo n.º 2
0
        private ProtoPadServer(Activity activity, int?overrideListeningPort = null, string overrideBroadcastedAppName = null)
        {
            _contextActivity = activity;

            BroadcastedAppName = overrideBroadcastedAppName ?? String.Format("ProtoPad Service on ANDROID Device {0}", Android.OS.Build.Model);
            ListeningPort      = overrideListeningPort ?? 8080;
            LocalIPAddress     = Helpers.GetCurrentIPAddress();

            var mainMonodroidAssembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(a => a.GetName().Name.ToLower() == "mono.android");

            var requestHandlers = new Dictionary <string, Func <byte[], string> >
            {
                { "GetMainXamarinAssembly", data => mainMonodroidAssembly.FullName },
                { "WhoAreYou", data => "Android" },
                { "ExecuteAssembly", data =>
                  {
                      var response = "{}";
                      var remoteCommandDoneEvent = new AutoResetEvent(false);
                      _contextActivity.RunOnUiThread(() => Response(data, remoteCommandDoneEvent, ref response));
                      remoteCommandDoneEvent.WaitOne();
                      return(response);
                  } }
            };

            _httpServer = new SimpleHttpServer(ListeningPort, requestHandlers);

            IPAddress broadCastAddress;

            using (var wifi = _contextActivity.GetSystemService(Android.Content.Context.WifiService) as WifiManager)
            {
                try
                {
                    _mcLock = wifi.CreateMulticastLock("ProtoPadLock");
                    _mcLock.Acquire();
                }
                catch (Java.Lang.SecurityException e)
                {
                    Debug.WriteLine("Could not optain Multicast lock: {0}. Did you enable CHANGE_WIFI_MULTICAST_STATE permission in your app manifest?", e.Message);
                }

                broadCastAddress = GetBroadcastAddress(wifi);
            }

            var inEmulator = Build.Brand.Equals("generic", StringComparison.InvariantCultureIgnoreCase);

            _udpServer = new UdpDiscoveryServer(BroadcastedAppName, String.Format("http://{0}:{1}/", inEmulator ? "localhost" : LocalIPAddress.ToString(), inEmulator ? "?" : ListeningPort.ToString()), broadCastAddress);
        }