(TelephonyManager tm=(TelephonyManager )this.getSystemService(Context.TELEPHONY_SERVICE);
I don't know why above code is returning false positive, but why don't you check its network type or network operator with telephony manager? For example, it might be returning NETWORK_TYPE_UNKNOWN flag for nexus 7.
return (android.telephony.TelephonyManager.getNetworkType()
!= android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN)
Refernce: