Apps could do a reverse DNS lookup on your public IP address and then use that to determine if you're on a wireless carrier's network. Though they'd have to hardcode some list of TLDs that correspond to wireless carriers, but it'd be one possible solution to get around the fact that to the computer it just looks like wifi.