mirror of
https://gitee.com/shuto/cordova-plugin-network-information.git
synced 2025-01-31 10:35:43 +08:00
[CB-4123] remove dupe code
This commit is contained in:
parent
f4d804c71c
commit
4c73c90b4b
@ -57,7 +57,7 @@
|
|||||||
<Capability Name="ID_CAP_NETWORKING" />
|
<Capability Name="ID_CAP_NETWORKING" />
|
||||||
</config-file>
|
</config-file>
|
||||||
|
|
||||||
<source-file src="src/wp7/NetworkStatus.cs" />
|
<source-file src="src/wp/NetworkStatus.cs" />
|
||||||
</platform>
|
</platform>
|
||||||
|
|
||||||
<!-- wp8 -->
|
<!-- wp8 -->
|
||||||
@ -72,7 +72,7 @@
|
|||||||
<Capability Name="ID_CAP_NETWORKING" />
|
<Capability Name="ID_CAP_NETWORKING" />
|
||||||
</config-file>
|
</config-file>
|
||||||
|
|
||||||
<source-file src="src/wp8/NetworkStatus.cs" />
|
<source-file src="src/wp/NetworkStatus.cs" />
|
||||||
</platform>
|
</platform>
|
||||||
|
|
||||||
</plugin>
|
</plugin>
|
||||||
|
@ -1,129 +0,0 @@
|
|||||||
/*
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.NetworkInformation;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
|
||||||
using System.Windows.Documents;
|
|
||||||
using System.Windows.Ink;
|
|
||||||
using System.Windows.Input;
|
|
||||||
using System.Windows.Media;
|
|
||||||
using System.Windows.Media.Animation;
|
|
||||||
using System.Windows.Shapes;
|
|
||||||
using Microsoft.Phone.Net.NetworkInformation;
|
|
||||||
|
|
||||||
namespace WPCordovaClassLib.Cordova.Commands
|
|
||||||
{
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation(v=VS.92).aspx
|
|
||||||
// http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation.devicenetworkinformation(v=VS.92).aspx
|
|
||||||
|
|
||||||
public class NetworkStatus : BaseCommand
|
|
||||||
{
|
|
||||||
const string UNKNOWN = "unknown";
|
|
||||||
const string ETHERNET = "ethernet";
|
|
||||||
const string WIFI = "wifi";
|
|
||||||
const string CELL_2G = "2g";
|
|
||||||
const string CELL_3G = "3g";
|
|
||||||
const string CELL_4G = "4g";
|
|
||||||
const string NONE = "none";
|
|
||||||
const string CELL = "cellular";
|
|
||||||
|
|
||||||
private bool HasCallback = false;
|
|
||||||
|
|
||||||
public NetworkStatus()
|
|
||||||
{
|
|
||||||
DeviceNetworkInformation.NetworkAvailabilityChanged += new EventHandler<NetworkNotificationEventArgs>(ChangeDetected);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnResume(object sender, Microsoft.Phone.Shell.ActivatedEventArgs e)
|
|
||||||
{
|
|
||||||
this.getConnectionInfo("");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void getConnectionInfo(string empty)
|
|
||||||
{
|
|
||||||
HasCallback = true;
|
|
||||||
updateConnectionType(checkConnectionType());
|
|
||||||
}
|
|
||||||
|
|
||||||
private string checkConnectionType()
|
|
||||||
{
|
|
||||||
if (DeviceNetworkInformation.IsNetworkAvailable)
|
|
||||||
{
|
|
||||||
if (DeviceNetworkInformation.IsWiFiEnabled)
|
|
||||||
{
|
|
||||||
return WIFI;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return DeviceNetworkInformation.IsCellularDataEnabled ? CELL : UNKNOWN;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private string checkConnectionType(NetworkInterfaceSubType type)
|
|
||||||
{
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case NetworkInterfaceSubType.Cellular_1XRTT: //cell
|
|
||||||
case NetworkInterfaceSubType.Cellular_GPRS: //cell
|
|
||||||
return CELL;
|
|
||||||
case NetworkInterfaceSubType.Cellular_EDGE: //2
|
|
||||||
return CELL_2G;
|
|
||||||
case NetworkInterfaceSubType.Cellular_3G:
|
|
||||||
case NetworkInterfaceSubType.Cellular_EVDO: //3
|
|
||||||
case NetworkInterfaceSubType.Cellular_EVDV: //3
|
|
||||||
case NetworkInterfaceSubType.Cellular_HSPA: //3
|
|
||||||
return CELL_3G;
|
|
||||||
case NetworkInterfaceSubType.WiFi:
|
|
||||||
return WIFI;
|
|
||||||
case NetworkInterfaceSubType.Unknown:
|
|
||||||
case NetworkInterfaceSubType.Desktop_PassThru:
|
|
||||||
default:
|
|
||||||
return UNKNOWN;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChangeDetected(object sender, NetworkNotificationEventArgs e)
|
|
||||||
{
|
|
||||||
switch (e.NotificationType)
|
|
||||||
{
|
|
||||||
case NetworkNotificationType.InterfaceConnected:
|
|
||||||
updateConnectionType(checkConnectionType(e.NetworkInterface.InterfaceSubtype));
|
|
||||||
break;
|
|
||||||
case NetworkNotificationType.InterfaceDisconnected:
|
|
||||||
updateConnectionType(NONE);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateConnectionType(string type)
|
|
||||||
{
|
|
||||||
// This should also implicitly fire offline/online events as that is handled on the JS side
|
|
||||||
if (this.HasCallback)
|
|
||||||
{
|
|
||||||
PluginResult result = new PluginResult(PluginResult.Status.OK, type);
|
|
||||||
result.KeepCallback = true;
|
|
||||||
DispatchCommandResult(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user