我们可以确定移除了SIM卡的Android设备的运营商/运营商吗?(Can we determine the carrier/operator for an Android device whos sim has been removed?)

对于已移除SIM卡的GSM Android设备,有没有办法检测设备之前运行的运营商,或者可能出售? 我最关心的是检测具有相同Build.Device并由多个不同运营商/运营商销售的手机。

载波/运营商检测的大多数方法似乎依赖于当前连接到网络或存在SIM的方法。

For a GSM Android device, whose sim card has been removed, is there any way to detect which carrier the device was previously running on, or perhaps sold by? I am most concerned with detecting phones who have the same Build.Device and are sold by multiple different carrier/operators.

Most method's of carrier/operator detection seem to depend on it currently being connected to the network, or a SIM being present.

最满意答案

检查Build.FINGERPRINT字符串。 它可能不是100%可靠,但大多数运营商将其名称放在字符串的第一部分: $(PRODUCT_BRAND) 。

http://developer.android.com/reference/android/os/Build.html

FINGERPRINT格式如下:

$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)

其中, $(BUILD_ID)特定于运营商/构建/区域。

当然,这些都不适用于无品牌设备或具有自定义ROM的设备 ,因为它们不受任何没有SIM卡的运营商的约束。 对于这两种情况,我认为除了检查SIM卡之外没有办法确定任何东西, 因为没有什么可以检查的。

Check the Build.FINGERPRINT string. It may not be 100% reliable, but most carriers put their name on the first section of the string: $(PRODUCT_BRAND).

http://developer.android.com/reference/android/os/Build.html

The FINGERPRINT format is the following:

$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)

Of those, $(BUILD_ID) is specific for carrier/build/region.

Of course, none of this will work in unbranded devices or in devices with custom ROMs, since they are not bound to any carrier without a sim. For those two cases, I believe there is no way to determine anything besides checking the sim, simply because there is nothing to check.

更多推荐