Bonjour à tous,

Tout d'abord, je tiens à m'excuser par avance si je ne poste pas ce message au bon endroit ou si ce genre de post existait déjà sur le forum. Je ne me suis pas encore familiarisé avec le fonctionnement du forum..

Revenons en à nos moutons !

Je cherche à réaliser un scanner de réseaux Wifi sous Android Studio dans le cadre d'un projet lié à mon école, le but étant de pouvoir le tester sur mon téléphone en le connectant par USB à l'aide de l'option de "Débogage USB".
A vrai dire, mon professeur ne nous à pas introduit le projet je suis donc totalement perdu...

En recherchant sur internet, j'ai trouvé de nombreux code ainsi que différents éléments qui semblent être constamment utilisés tels que : les intents, les BroadcastListener ou encore les Wifi Manager.

Voici le code que j'ai trouvé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
public class WiFiScannerActivity extends AppCompatActivity{
 
  private WifiManager wifiManager;
  private ListView listView;
  private Button buttonScan;
  private int size = 0;
  private List<ScanResult> results;
  private ArrayList<String> arrayList = new ArrayList<>();
  private ArrayAdapter adapter;
 
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    buttonScan = findViewById(R.id.scanBtn);
    buttonScan.setOnClickListener(new View.OnClickListener() {
	  @Override
      public void onClick(View view) {
        scanWifi();
      }
    });
 
    listView = findViewById(R.id.wifiList);
    wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
 
    if (!wifiManager.isWifiEnabled()) {
      Toast.makeText(this, "WiFi is disabled ... We need to enable it", Toast.LENGTH_LONG).show();
      wifiManager.setWifiEnabled(true);
    }
 
    adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arrayList);
    listView.setAdapter(adapter);
    scanWifi();
  }
 
  private void scanWifi() {
    arrayList.clear();
    registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    wifiManager.startScan();
    Toast.makeText(this, "Scanning WiFi ...", Toast.LENGTH_SHORT).show();
  }
 
  BroadcastReceiver wifiReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
      results = wifiManager.getScanResults();
      unregisterReceiver(this);
 
      for (ScanResult scanResult : results) {
        arrayList.add(scanResult.SSID + " - " + scanResult.capabilities);
        adapter.notifyDataSetChanged();
      }
    };
  }
}
(Lien du code : https://ssaurel.medium.com/develop-a...n-daa3b77feb73 )

Quelqu'un serait il capable de m'expliquer à quoi servent ces différents éléments ? J'aimerais réaliser le code de bout en bout en comprenant les tenants et les aboutissants du projet. Reprendre du code d'internet en copier/coller sans le comprendre ne m'intéresse absolument pas.
Je voudrais pouvoir le refaire "à ma sauce" !

Merci d'avance et bonnes fêtes !

Matmaat