Delphi XE7のAndroidアプリケーションでWifiが有効か無効かを調べる

Delphi XE7のAndroidアプリケーションでWifiが有効か無効かを調べる方法です。

Java2OPでWifiManagerクラスのブリッジファイルを作成します。

Java2OP.exe -classes android.net.wifi.WifiManager -unit Androidapi.JNI.WifiManager

プロジェクトオプションの「使用する権限」で「Wi-Fi 状態へのアクセス」を「true」にします。

Wifi状態へのアクセス

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;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください