mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 04:41:36 +08:00
Merge pull request #3105 from NativeScript/connectivity
Fix: connectivity module always returns undefined on android <= 4.4
This commit is contained in:
@ -4,8 +4,8 @@ import utils = require("utils/utils");
|
|||||||
|
|
||||||
global.moduleMerge(common, exports);
|
global.moduleMerge(common, exports);
|
||||||
|
|
||||||
var WIFI = "WIFI";
|
let wifi = "wifi";
|
||||||
var MOBILE = "MOBILE";
|
let mobile = "mobile";
|
||||||
|
|
||||||
// Get Connection Type
|
// Get Connection Type
|
||||||
function getConnectivityManager(): android.net.ConnectivityManager {
|
function getConnectivityManager(): android.net.ConnectivityManager {
|
||||||
@ -13,7 +13,7 @@ function getConnectivityManager(): android.net.ConnectivityManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getActiveNetworkInfo(): android.net.NetworkInfo {
|
function getActiveNetworkInfo(): android.net.NetworkInfo {
|
||||||
var connectivityManager = getConnectivityManager();
|
let connectivityManager = getConnectivityManager();
|
||||||
if (!connectivityManager) {
|
if (!connectivityManager) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -22,23 +22,26 @@ function getActiveNetworkInfo(): android.net.NetworkInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getConnectionType(): number {
|
export function getConnectionType(): number {
|
||||||
var activeNetworkInfo = getActiveNetworkInfo();
|
let activeNetworkInfo = getActiveNetworkInfo();
|
||||||
if (!activeNetworkInfo || !activeNetworkInfo.isConnected()) {
|
if (!activeNetworkInfo || !activeNetworkInfo.isConnected()) {
|
||||||
return common.connectionType.none;
|
return common.connectionType.none;
|
||||||
}
|
}
|
||||||
|
|
||||||
var connectionType = activeNetworkInfo.getTypeName();
|
let connectionType = activeNetworkInfo.getTypeName().toLowerCase();
|
||||||
switch (connectionType) {
|
if (connectionType.indexOf(wifi) !== -1){
|
||||||
case WIFI:
|
|
||||||
return common.connectionType.wifi;
|
return common.connectionType.wifi;
|
||||||
case MOBILE:
|
}
|
||||||
|
|
||||||
|
if (connectionType.indexOf(mobile) !== -1){
|
||||||
return common.connectionType.mobile;
|
return common.connectionType.mobile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return common.connectionType.none;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function startMonitoring(connectionTypeChangedCallback: (newConnectionType: number) => void): void {
|
export function startMonitoring(connectionTypeChangedCallback: (newConnectionType: number) => void): void {
|
||||||
var onReceiveCallback = function onReceiveCallback(context: android.content.Context, intent: android.content.Intent) {
|
let onReceiveCallback = function onReceiveCallback(context: android.content.Context, intent: android.content.Intent) {
|
||||||
var newConnectionType = getConnectionType();
|
let newConnectionType = getConnectionType();
|
||||||
connectionTypeChangedCallback(newConnectionType);
|
connectionTypeChangedCallback(newConnectionType);
|
||||||
}
|
}
|
||||||
appModule.android.registerBroadcastReceiver(android.net.ConnectivityManager.CONNECTIVITY_ACTION, onReceiveCallback);
|
appModule.android.registerBroadcastReceiver(android.net.ConnectivityManager.CONNECTIVITY_ACTION, onReceiveCallback);
|
||||||
|
Reference in New Issue
Block a user