Files
streamyfin/modules/wifi-ssid/index.ts
2026-01-11 13:08:14 +01:00

46 lines
1.1 KiB
TypeScript

import { Platform, requireNativeModule } from "expo-modules-core";
// Only load the native module on iOS
const WifiSsidModule =
Platform.OS === "ios" ? requireNativeModule("WifiSsid") : null;
/**
* Get the current WiFi SSID on iOS.
* Returns null on Android or if not connected to WiFi.
*
* Requires:
* - Location permission granted
* - com.apple.developer.networking.wifi-info entitlement
* - Access WiFi Information capability enabled in Apple Developer Portal
*/
export async function getSSID(): Promise<string | null> {
if (!WifiSsidModule) {
console.log("[WifiSsid] Module not available on this platform");
return null;
}
try {
const ssid = await WifiSsidModule.getSSID();
return ssid ?? null;
} catch (error) {
console.error("[WifiSsid] Error getting SSID:", error);
return null;
}
}
/**
* Synchronous version - uses older CNCopyCurrentNetworkInfo API
*/
export function getSSIDSync(): string | null {
if (!WifiSsidModule) {
return null;
}
try {
return WifiSsidModule.getSSIDSync() ?? null;
} catch (error) {
console.error("[WifiSsid] Error getting SSID (sync):", error);
return null;
}
}