7

あなたがそれを使おうとして、たまたまwifiネットワークに接続されていないとき、GooglePlayはこれを行います。

私がやろうとしていることの写真:

画像

標準を実行するだけの場合

startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));

次に、探しているウィンドウが読み込まれます。ただし、その上に「戻る」ボタンと「次へ」ボタンを重ねて表示したい。Backは前のウィンドウに戻り、nextは、ネットワークが選択され、認証が実行された場合にのみ選択可能である必要があります(必要な場合)。その後、別のアクティビティに移動します。

フラグメント(1つはインテント起動ウィンドウ用、もう1つはボタン用)で実装しようとしましたが、機能しません。

これは、アプリが実行したときに起動されたコードでした

public class TestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layfile);
//        Intent n = new Intent(this,Pactivity.class);
//        startActivity(n);
//        
    }
}

public class Pactivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
    //addPreferencesFromIntent(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
    setContentView(R.layout.main);

}

}

public class Pfrag extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.preferences);
    }
}

これがxmlファイルです

<?xml version="1.0" encoding="UTF-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >    
    <Preference 
        android:key="key"   
        android:title="WiFi" 
        android:summary="Calls WiFi">           
            <intent android:action="android.net.wifi.PICK_WIFI_NETWORK"/>           
    </Preference>
</PreferenceScreen>

また、Preferencesベースのクラスをまとめて試してみました。また、私がやりたいことをしていません。

で表示されているものにボタンをオーバーレイするにはどうすればよいWifiManager.ACTION_PICK_WIFI_NETWORKですか?

4

2 に答える 2

21
    Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);       
    intent.putExtra("only_access_points", true);
    intent.putExtra("extra_prefs_show_button_bar", true);
    intent.putExtra("wifi_enable_next_on_connect", true);
    startActivityForResult(intent, 1);

これでうまくいくはずです。Googleコードからリバースエンジニアリングされました。

于 2012-06-28T04:57:41.280 に答える
3

これは、UncleKingの答えを改善したものにすぎません。

あなたが具体的に求めるので

WifiManager.ACTION_PICK_WIFI_NETWORKで表示されるものにボタンをオーバーレイするにはどうすればよいですか?

余分なものonly_access_pointsやの必要はありませんwifi_enable_next_on_connectextra_prefs_show_button_bar余分なものだけが必要です。この最後のエクストラを使用するだけで、オーバーレイボタンが表示されます。

必要に応じて、ADBを使用してこれを試すことができます。

am start -a android.net.wifi.PICK_WIFI_NETWORK --ez extra_prefs_show_button_bar True

したがって、削減されたコードは次のようになります。

Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);       
intent.putExtra("extra_prefs_show_button_bar", true);
startActivityForResult(intent, 1);

Android 4.1、4.4、5.1で試してみました。

于 2017-01-04T16:04:33.747 に答える