1

新しい名前とオープンなアクセシビリティでホットスポットを実行しようとしています。

    wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
    wifiConfig.SSID = "\"MySSID\"";
    wifiConfig.networkId = 1;
    methodNum = getMethodNumber("setWifiApEnabled");
    try {
        wmMethods[methodNum].invoke(wifiManager, wifiConfig, true);
    } catch (IllegalArgumentException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IllegalAccessException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (InvocationTargetException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }        

私は正しい方法を取得し、それが電話のホットスポットを開始するようですが、構成は変更されません。

getWifiApConfigurationを使用して現在の構成データを取得しようとしましたが、何も取得せず、ssidも、現在の暗号化も取得しません。

デバッグにHTCEvo3dを使用しています。

4

2 に答える 2

4

一部のhtc電話は、構成を維持するためにHotspotProfileタイプのクラスを使用しているようです。したがって、setWifiApEnabledを呼び出す前に、htcの方法でssidを設定する必要があります。

if (isHtc) setHTCSSID(config);
methodNum = getMethodNumber("setWifiApEnabled");
try {
    wmMethods[methodNum].invoke(wifiManager, wifiConfig, true);
    ...

isHtcは次のように計算できます。

 try { isHtc = null!=WifiConfiguration.class. getDeclaredField("mWifiApProfile");  }
 catch (java.lang.NoSuchFieldException e) { isHtc = false }

setHTCSSIDは次のようになります。

public void setHTCSSID(WifiConfiguration config) {
    try {
        Field mWifiApProfileField = WifiConfiguration.class.getDeclaredField("mWifiApProfile");
        mWifiApProfileField.setAccessible(true);
        Object hotSpotProfile = mWifiApProfileField.get(config);
        mWifiApProfileField.setAccessible(false);

        if(hotSpotProfile!=null){
            Field ssidField = hotSpotProfile.getClass().getDeclaredField("SSID");
            ssidField.setAccessible(true);
            ssidField.set(hotSpotProfile, config.SSID);
            ssidField.setAccessible(false);

        }
    } catch(Exception e) {
        e.printStackTrace();
    }
}

私はいくつかの中国のブログでこの情報を見つけました:http://xiaxingwork.iteye.com/blog/1727722http://blog.sina.com.cn/s/blog_53dd443a010109i8.html

于 2013-04-04T08:04:08.650 に答える
1

HTCの問題のようです。私の友人の何人かは、HTCや他のデバイスで同様のコードを試しました。HTCに取り組んでおらず、他の人にも取り組んでいます。

于 2012-11-09T11:21:27.127 に答える