Is it possible to turn the AP (Access Point) on and make it impossible for the carrier to discover that this data comes from other devices than the handset?
There are unlimited data plans, but limited when used as a hotspot, that's why.
I found the following code to turn the AP on:
wifi_manager = (WifiManager) this.getSystemService(HotSpot_TrisActivity.this.WIFI_SERVICE);
btnEnableAP = (Button)findViewById(R.id.btnEnableAP);
btnEnableAP.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
WifiConfiguration wifi_configuration = null;
wifi_manager.setWifiEnabled(false);
try
{
//USE REFLECTION TO GET METHOD "SetWifiAPEnabled"
Method method=wifi_manager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
method.invoke(wifi_manager, wifi_configuration, true);
}
catch (NoSuchMethodException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IllegalArgumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IllegalAccessException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (InvocationTargetException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
I found some ways the carrier might detect tethering:
A constant TTL (Time To Live) could be used to “hide tether usage”. Basically here’s how it works. When your phone wants to send out a packet, one of the things it adds to the packet is a TTL value, the default for Android is 64. That TTL value is decremented by one each time it hops through a network between your phone, so it leaves your phone at 64, leaves the tower at 63, leaves AT&T at 62, so on and so forth. The thing is, some tethering apps are written to simply act as a router which means that they decrement the TTL so normal packets would come as 64 and tethered packets would come as 63. In addition, Windows has a default TTL of 128, which is different from the normal Android TTL, very obvious whether the tether app decrements or not.
Or they might be simply looking for more than one device. When you use a WiFi tether your Android computer looks like a router, and the carrier can query how many computers are attached to that router.
Or they check the browser.
Anyone any clues how to adapt these data while tethering?