i'm trying to determine if the device i'm running on has the capability to send/receive phone calls, email, and SMS.
i found that i can use the TelephonyManager to get the devices phone number and on devices without the capability of making calls the phone number is null. that's one problem down. i still haven't found a way to detect email and SMS capability.
SMS is probably futile without a cell signal, so you can use your same trick for that.
As for email (=networking), you can probably iterate through your devices in
NetworkInterface.getNetworkInterfaces()
and see if the device is connected. If you can connect to the internet, you can send emails.