Android アプリケーションを開発しており、IPv6 を使用してサーバーに接続する必要があります。
電話機で IPv6 が有効になっており、自分のローカル IPv6 アドレスが で表示されip addr
ます。ping6
また、PC から電話を使用することも、その逆も可能です。
しかし、Java コマンドNetworkInterface.getNetworkInterfaces()
を使用して Android でローカル アドレスを取得しようとすると、IPv4 アドレスしか取得できません。
また、クライアントソケットを開こうとしましたが、行
Socket s = new Socket(MYSERVERIPV6ADDRESS, PORT);
は常にjava.net.SocketException: Invalid argument
. コンピューターで同じコードを試してみたところ、完全に機能したため、アドレスは正しいと確信しています。
オペレーティング システムでは IPv6 がサポートされていますが、Java 仮想マシンではサポートされていないようです。この問題を解決する方法はありますか?