È possibile eseguire questa operazione in modo relativamente semplice leggendo queste informazioni nell'app in modo programmatico e quindi inviarle per sms, e-mail o semplicemente caricarle su un server.
Tuttavia, non penso che gli utenti saranno molto fortunati a farlo. Almeno devi informarli a riguardo.
Per un ID è possibile utilizzare questo:
http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29
Per ottenere l'indirizzo IP è possibile utilizzare questo codice:
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;
}
Per ottenere il tipo di rete (credo che il vostro parlare wifi o cellulare) è possibile utilizzare questo snippet di codice:
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mobile
State mobile = conMan.getNetworkInfo(0).getState();
//wifi
State wifi = conMan.getNetworkInfo(1).getState();
e quindi utilizzarlo così:
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
//mobile
} else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
//wifi
}
Si prega di fare inserire il nome della tua app, quindi so che hanno per evitarlo. Hai mai sentito parlare di privacy? – RoToRa
Ho aggiornato la mia domanda e grazie per il tuo commento. – virsir