Puede hacerlo de forma relativamente fácil leyendo esta información en su aplicación programáticamente y luego enviándola por sms, correo electrónico o simplemente cargándola en un servidor.
Sin embargo, no creo que los usuarios tengan mucha suerte de estar haciendo esto. Al menos tienes que informarles sobre eso.
Para una identificación podría utilizar este:
http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29
Para obtener el IP podría utilizar este código:
public String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e(LOG_TAG, ex.toString());
}
return null;
}
Para obtener el tipo de red (creo que estás hablando wifi o móvil) puede usar este fragmento de código:
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mobile
State mobile = conMan.getNetworkInfo(0).getState();
//wifi
State wifi = conMan.getNetworkInfo(1).getState();
y luego utilizarlo como esa:
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
//mobile
} else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
//wifi
}
por favor haga publicar el nombre de su aplicación, por lo que sé que tiene que evitarlo. ¿Has oído hablar de privacidad? – RoToRa
He actualizado mi pregunta y gracias por su comentario. – virsir