Je suis nouveau sur le système Android. Est-ce exact, le Android 2.2.1 WIFI détecte uniquement les réseaux sans fil non ad hoc?). Je me demandais si Il existe un moyen de connecter mon Android à une configuration de réseau ad hoc à partir de mon ordinateur portable.
Vous avez raison de dire que cette fonctionnalité n'est actuellement pas prise en charge de manière native dans Android, bien que Google l'ait annoncée depuis le lancement officiel de Android.
Bien que non pris en charge de manière native, le matériel de chaque Android périphérique publié à ce jour le prend en charge. Il est simplement désactivé dans le logiciel et vous devez l'activer pour pouvoir utiliser ces fonctionnalités.
C'est cependant assez facile à faire, mais vous devez être root, et les détails peuvent être légèrement différents entre différents appareils. Les développeurs XDA seraient votre meilleure source d'information à ce sujet. http://forum.xda-developers.com/forumdisplay.php?f=564 . La plupart des solutions existantes sont basées sur le remplacement de wpa_supplicant, et c'est la méthode que je recommanderais si possible sur votre appareil. Pour plus de détails, voir http://szym.net/2010/12/adhoc-wifi-in-Android/ .
Mise à jour : Cela fait quelques années maintenant, et chaque fois que j'ai besoin d'un réseau ad hoc sur mon téléphone, j'utilise CyanogenMod . Il vous donne à la fois un accès programmé et un script à ces fonctions, ainsi que la possibilité de créer des réseaux ad hoc (ibss) dans le menu des paramètres WiFi.
Si vous souhaitez spécifiquement utiliser un réseau sans fil ad hoc , alors la réponse de Andy semble être votre seule option. Toutefois, si vous souhaitez simplement partager la connexion Internet de votre ordinateur portable via Wi-Fi par tout moyen nécessaire, vous avez au moins deux options supplémentaires:
* Certains téléphones avec Android 2.3 ont des extensions de système d’exploitation propriétaires qui permettent le Wi-fi Direct (la plupart des téléphones plus récents de Samsung), mais Android 4 devraient pleinement prendre en charge cette fonctionnalité (- source ).
J'ai remarqué quelque chose d'intéressant ici: dans mon téléphone 2.3.4, je ne peux pas voir les SSID AP/AdHoc dans le menu Paramètres> Sans fil et réseaux. Sur un Acer A500 tournant sous 4.0.3, je les vois, préfixés par (*)
Cependant, dans le texte de code suivant que j'ai adapté à partir de (je ne me souviens plus de la source, désolé!), Le Ad Hoc apparaît dans l'analyse Wifi sur mon téléphone 2.3.4. Je cherche toujours à connecter et créer un socket + input/outputStream. Mais, voila:
public class MainActivity extends Activity {
private static final String CHIPKIT_BSSID = "E2:14:9F:18:40:1C";
private static final int CHIPKIT_WIFI_PRIORITY = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button btnDoSomething = (Button) findViewById(R.id.btnDoSomething);
final Button btnNewScan = (Button) findViewById(R.id.btnNewScan);
final TextView textWifiManager = (TextView) findViewById(R.id.WifiManager);
final TextView textWifiInfo = (TextView) findViewById(R.id.WifiInfo);
final TextView textIp = (TextView) findViewById(R.id.Ip);
final WifiManager myWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
final WifiInfo myWifiInfo = myWifiManager.getConnectionInfo();
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.BSSID = CHIPKIT_BSSID;
wifiConfiguration.priority = CHIPKIT_WIFI_PRIORITY;
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiConfiguration.allowedKeyManagement.set(KeyMgmt.NONE);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wifiConfiguration.status = WifiConfiguration.Status.ENABLED;
myWifiManager.setWifiEnabled(true);
int netID = myWifiManager.addNetwork(wifiConfiguration);
myWifiManager.enableNetwork(netID, true);
textWifiInfo.setText("SSID: " + myWifiInfo.getSSID() + '\n'
+ myWifiManager.getWifiState() + "\n\n");
btnDoSomething.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
clearTextViews(textWifiManager, textIp);
}
});
btnNewScan.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
getNewScan(myWifiManager, textWifiManager, textIp);
}
});
}
private void clearTextViews(TextView...tv) {
for(int i = 0; i<tv.length; i++){
tv[i].setText("");
}
}
public void getNewScan(WifiManager wm, TextView...textViews) {
wm.startScan();
List<ScanResult> scanResult = wm.getScanResults();
String scan = "";
for (int i = 0; i < scanResult.size(); i++) {
scan += (scanResult.get(i).toString() + "\n\n");
}
textViews[0].setText(scan);
textViews[1].setText(wm.toString());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
N'oubliez pas que dans Eclipse, vous pouvez utiliser Ctrl + Maj + [lettre O] pour compléter les importations manquantes ...
et mon manifeste:
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.digilent.simpleclient"
Android:versionCode="1"
Android:versionName="1.0" >
<uses-sdk
Android:minSdkVersion="8"
Android:targetSdkVersion="15" />
<uses-permission Android:name="Android.permission.ACCESS_WIFI_STATE"/>
<uses-permission Android:name="Android.permission.CHANGE_WIFI_STATE"/>
<application
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme" >
<activity
Android:name=".MainActivity"
Android:label="@string/title_activity_main" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
J'espère que ça t'as aidé!
Si vous avez une carte Microsoft Virtual WiFi Miniport comme l’une des cartes réseau disponibles, procédez comme suit:
netsh wlan set hostednetwork mode=allow ssid=NAME key=PASSWORD
netsh wlan start hostednetwork
netsh wlan stop hostednetwork
C'est ça!
Source: Comment connecter Android téléphone à un réseau ad-hoc sans logiciel.
Vous avez raison, mais notez que vous pouvez le faire dans l’inverse - utilisez Android) le partage de connexion Wi-Fi qui configure le téléphone en tant que station de base et vous connectez à cette dernière à partir de votre ordinateur portable.