我想知道如何檢測GPS硬件存在於iPhone或不檢測GPS硬件在iphone
回答
儘管您無法使用SDK來確定這一點,但您可能會利用您對當前模型的瞭解。如果您僅限於iPhone 3G,iPhone 3GS和iPod Touch第二代(我不親自支持較舊的iPhone邊緣或iPod Touch第一代),那麼您已經知道iPhone機型配備了真正的AGPS裝置,而iPod Touch 2nd世代可以使用 - 如果可用 - 地理標記的無線熱點。然後,您可以使用以下方法來確定你的模型運行於:
- (NSString *) deviceModel{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *answer = malloc(size);
sysctlbyname("hw.machine", answer, &size, NULL, 0);
NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];
free(answer);
return results;
}
該方法返回@「iPhone2,1」的3GS,@「iPhone1,2」,爲3G和@「iPod2, 1「爲iPod touch第二代;你叫它如下
NSString *deviceModel = [[self deviceModel] retain];
和按如下方式使用它:
if([self.deviceModel isEqualToString:@"Pod2,1"]){
// no real GPS unit available
// no camera available
...
}
不能檢測硬件,至少不是通過官方SDK。但是,您可以通過與您的應用程序(通過CoreLocation框架)交互(即從中獲取信息)。而且這種方式適用於自iPhone OS 2.0發佈以來發布的所有設備(即使沒有內置真正的GPS也可接觸iPod)。
我找到的最好的是利用一個事實,即CLLocation.verticalAccuracy
只適用於裝有GPS設備的設置。當然,這意味着GPS可用性只能在第一次更新位置後才能確定。
從蘋果公司的文檔:
確定垂直精度 需要與GPS 能力的設備。因此,在某些早期的基於iOS的設備 中,此屬性 始終包含負值。
更新: 有時,核心定位發送CLLocation與verticalAccuracy = -1在iPhone 4對象以及。當沒有GPS定位可用時,Core Location可能會採用小區或Wi-Fi定位。所以你得到-1的事實並不一定意味着你沒有GPS。只有當你獲得肯定的價值時,你纔有GPS。
爲了避免要求GPS權限只是爲了知道GPS是否存在,我使用一個小技巧。由於所有帶有真實GPS的設備都有3G,我只需檢查設備是否有電話接線員。
//Use classLoaders to avoid crashes on iPhone OS 3.x
id netInfo = [[NSClassFromString(@"CTTelephonyNetworkInfo") alloc] init];
if (netInfo)
{
id carrier = [netInfo subscriberCellularProvider];
if ([[carrier carrierName] length] <=0)
{
//NO operator=>NO 3G and no real GPS
}
}
[netInfo release];
當然,這可能不是100%的未來證明,但它在這一點上效果很好。我在我的Battery HD應用程序中使用它以隱藏GPS估計值,所以我顯然不想向用戶詢問授權。
- 1. 如何使用水平精度檢測iPhone中的GPS硬件支持?
- 2. 可能檢測硬件?
- 3. 自動檢測GPS
- 4. 檢測硬件耳機機在Mac
- 5. 在.NET中檢測(未知)硬件
- 6. 如何檢測硬件鍵盤是否連接到iPhone?
- 7. 檢測連接到iPhone的外部硬件
- 8. 檢查wheather GPS可用與否在iphone
- 9. PhoneGap GPS檢測插件不工作
- 10. 檢測硬件靜音按鈕
- 11. Android硬件回聲消除檢測
- 12. 向前兼容的硬件檢測
- 13. 檢測硬件更改服務器端
- 14. iphone檢測委託事件
- 15. 如何檢測iPhone上的硬件鍵盤上的鍵盤事件(iOS)
- 16. 如何檢測GPS正在啓用
- 17. 檢測硬編碼密碼
- 18. iphone檢測php
- 19. 檢測iPhone
- 20. 檢測iPhone
- 21. 檢測iPhone EndEvent
- 22. 在iPhone上檢測長按
- 23. 檢測聲音在iphone
- 24. 碰撞檢測在iphone
- 25. 在iOS中檢測iPhone 3G
- 26. 檢測硬件設備是否正在工作或不在C#
- 27. 爲iPhone製作硬件
- 28. iPhone GPS CLLocation鎖?
- 29. iPhone GPS性能
- 30. iPhone接近檢測
carrierName如何短於0? – bk138 2016-03-07 22:02:08