いつもお世話になります。
FMXでマルチデバイスを開発(Android)をしています。
Wi-Fi接続はスマホのIPアドレスを静的アドレスにしているのですが
そのIPアドレスを取得する方法はあるのでしょうか。
Delphi Berlin Enterprise
Windows 10 PRO 64bit
なんかそのものズバリな記事がありましたが
Delphi XE7のAndroidアプリケーションでWi-Fiの情報を取得する | 山本隆の開発日誌
https://www.gesource.jp/weblog/?p=6875
HFUKUSHI さん、度々のご案内ありがとうございます。
昨日から試しているのですが
ご案内頂きました「山本隆の開発日誌」の書かれています
>Java2OPでWifiManagerクラスとWifiInfoクラスのブリッジファイルを作成します。
>Java2OP.exe -classes android.net.wifi.WifiManager android.net.wifi.WifiInfo -unit Androidapi.JNI.Wifi
の部分がどのようにコーディングするのか どうしてもわかりません。
Java2OP.exeをインストールするのでしょうか。
前回のMACアドレスの取得がうまくいったなら、同様にWifiInfo.getIpAddressで取れませんか?
HFUKUSHIさん、ご対応ありがとうござます。
「山本隆の開発日誌」様のサイトに記載されていますuses節の
Androidapi.JNI.Wifi,
でエラーが発生します。
因みに、
プロジェクトオプションの「使用する権限」で「Wi-Fi 状態へのアクセス」は「true」にしてあります。
山本さんの記事の手順ではAndroidapi.JNI.Wifi(.pas)はJava2OPで事前に生成しておくユニットなので、
この場合はいらない(usesする必要はない)んじゃないですか?
(必要な定義は基本的にAndroidapi.JNI.Netにありそう)
HFUKUSHIさn、お返事ありがとうございます。
ネット検索して以下のようにブリッジファイルを生成しようと思ったのですが
Java2OP.exe -classes android.net.wifi.WifiManager android.net.wifi.WifiInfo -unit Androidapi.JNI.Wifi
上のコードでエラーが発生しちゃいました。
参考URL
https://mam-mam.net/mytech/show.php?cd=335
エラー内容
Warning: error opening ReservedWordsOP.txt
Warning: error opening ReservedWordsC.txt
Parsing xml: C:\Program Files (x86)\Embarcadero\Studio\18.0\bin\converters\java2op\bootclasses.xml
いやJava2OPでAndroidapi.JNI.Wifi.pasの生成、いらないですよね?という話では?
HFUKUSHIさん、何度もすみません。
出ました。
ただ、出てきたIPアドレスが1645521088と表示されます。
本当のIPアドレスは192.168.20.98
1645521088(10) = 6214A8C0(16)
C0(16)=192(10)
A8(16)=168(10)
14(16)=20(10)
62(16)=98(10)
こういうことですかね
HFUKUSHIさん、ご回答ありがとうございます。
そういうことでしたか。
奥が深いですね。
やればやるほど 難問に当たり
気が重いですが頑張ります。
今後ともよろしくお願いします。
ちなみに誤解のないように確認しておきますが、IPv4のアドレスは本来32bitの符号なし整数、
つまり1645521088(10) = 6214A8C0(16)が本来の表現方法(ただし←これはエンディアンが逆)で、
ドットつきの表記はあくまで人が見てわかりやすくしているだけです。
IPアドレス - Wikipedia
https://ja.wikipedia.org/wiki/IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9
HFUKUSHIさん、ご丁寧な
解説ありがとうございます。
とっても勉強になりました。
今後ともよろしくお願いします。
ツイート | ![]() |