Bonjour, je me retrouve bloqué dans mon projet de triangulation via wifi, car je trouve que les résultats de distance obtenu en situation réelle ne sont pas concluant du tout, en effet, avec le code suivant, j'obtiens des résultats tel que 1.5*E-4 mètre, ce qui me parait complètement absurde. Me serais-je trompé ? Merci d'apporter un oeil neuf à mon travail.
Cordialement, Isalus.

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
 
package com.example.smarttwo;
 
import android.os.Bundle;
import android.net.wifi.*;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
public class MainActivity extends Activity implements OnClickListener 
{
	private Button test;
 
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
 
		this.test = (Button)this.findViewById(R.id.button1);
		this.test.setOnClickListener(this);
  	}
 
	@Override
	public boolean onCreateOptionsMenu(Menu menu) 
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
 
	public void onClick(View v)
	{
		double testy;
		testy = getSignalToMeter();
		Toast.makeText(this, "Vous vous situez à:" + String.valueOf(testy) + "du point d'accès", Toast.LENGTH_SHORT).show();
	}
 
	public double getSignalToMeter()
	{
		WifiManager wifiManager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
		double linkSpeed = wifiManager.getConnectionInfo().getRssi();
		//**? return LinkSpeed ?**\\ 
		double exp = (27.55 - (20 * Math.log10(2400)) + (linkSpeed)) / 20.0;
                //** 2400 = Access point's frequency, 2.4GHz **\\
		return Math.pow(10.0, exp);
	}