1

デバイスがアクセス ポイントを作成する必要があるアプリを開発しています。Nexus 7 (Android 4.2.1) と Nexus 10 (4.2.2) でコードをテストしていますが、両方で同じ問題が発生します。アクセスポイントを有効にできましたが、接続しようとするすべてのデバイスが「IPアドレスを取得中」のままです。理由はありますか?Galaxy Tab 10" (Android 4.0.3) で同じコードをテストしたところ、完璧に動作しました。

private void createWifiAccessPoint(String pSSID)
{    
    if(mWifiManager.isWifiEnabled())
    {
        mWifiManager.setWifiEnabled(false);          
    }

    Method[] wmMethods = mWifiManager.getClass().getDeclaredMethods();   
    boolean methodFound=false;
    for(Method method: wmMethods){
        if(method.getName().equals("setWifiApEnabled"))
        {
            methodFound=true;

            WifiConfiguration netConfig = new WifiConfiguration();
            netConfig.SSID = pSSID;

            try {
                boolean apstatus = (Boolean) method.invoke(mWifiManager, netConfig,true);          
                for (Method isWifiApEnabledmethod: wmMethods)
                {
                    if(isWifiApEnabledmethod.getName().equals("isWifiApEnabled"))
                    {
                        while(!(Boolean)isWifiApEnabledmethod.invoke(mWifiManager)){
                        };
                        for(Method method1: wmMethods){
                            if(method1.getName().equals("getWifiApState")){
                                int apstate;
                                apstate=(Integer)method1.invoke(mWifiManager);
                                Toast.makeText(this, netConfig.SSID + String.valueOf(apstate), Toast.LENGTH_LONG).show();
                            }
                        }
                    }
                }
                if(apstatus)
                {
                    System.out.println("success");  
                }else
                {
                    System.out.println("failed");   
                }

            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }      
    }
    if(!methodFound){

    }
}
4

1 に答える 1

0

あなたの問題は、接続しようとしているデバイスに、NexusデバイスのDHCPサーバーからIPアドレスなどが提供されることが期待されていることだと思います. コードはアクセス ポイントを作成しているだけです。おそらく、リンクの両端に静的 IP アドレスが必要です。とはいえ、私自身も多かれ少なかれまったく同じ問題を抱えているため、それをどのように行うべきかわかりません。

Jellybean タブレットで動作する Wi-Fi アクセス ポイントをプログラムで作成できないを参照してください。

IP アドレスをアクセス ポイントに関連付けようとしましたが、関連付けを行ったように見えますが、まだ接続を確立できていないため、申し訳ありませんが、質問に対する部分的な回答しかありません。

于 2013-04-17T11:37:51.073 に答える