Shouldn't be particularly hard. You have the UI_USER_INTERFACE_IDIOM()
which can be checked against either UIUserInterfaceIdiomPad
or UIUserInterfaceIdiomPhone
if it reports back the latter you can do further checks against hardware features to decide whether it's an iPod or iPhone.
It seems here that the most popular choice is to use the [UIApplication sharedApplication]
canOpenURL
-method and see if it reports YES when sending a @"tel://..."
-type URL.
Not sure what Apple's policies are on this though...
Edit: As jrturton mentions this doesn't cover the not-install bit of the question. A quick search through stack comes up with this though. It suggest using the telephony-key, unfortunately this won't hack it with iPad. Perhaps the GPS-flag might cut it?
Edit2: I came across this very useful list. According to the information compiled there
it seems the best flag to use is magnetometer
it is supported by all iPads sans the very first one and by no iPods...