Delphi XE7のAndroidアプリケーションでWifiが有効か無効かを調べる方法です。
Java2OPでWifiManagerクラスのブリッジファイルを作成します。
Java2OP.exe -classes android.net.wifi.WifiManager -unit Androidapi.JNI.WifiManager
プロジェクトオプションの「使用する権限」で「Wi-Fi 状態へのアクセス」を「true」にします。
IsWifiEnabledメソッドを作成します。
type
TForm1 = class(TForm)
/// <summary>
/// Wifiが有効のときはTrue、無効の時はFalseを返します。
/// </summary>
function IsWifiEnabled: Boolean;
end;
実装は次のようになります。
uses
Androidapi.Helpers,
Androidapi.JNI.JavaTypes,
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNIBridge,
Androidapi.JNI.WifiManager;
function TForm1.IsWifiEnabled: Boolean;
var
Obj: JObject;
WifiManager: JWifiManager;
begin
Obj := SharedActivityContext.getSystemService
(TJContext.JavaClass.WIFI_SERVICE);
if Obj = nil then
Exit(False);
WifiManager := TJWiFiManager.Wrap((Obj as ILocalObject).GetObjectID);
Result := WifiManager.isWifiEnabled;
end;