iphone距離感應器測試 - iphone距離感應器維修




iPhone接近傳感器 (9)

@Dipak Patel和@Coderer

您可以在http://spazout.com/google_cheats_independent_iphone_developers_screwed下載工作代碼

它在UIApplication中有一個workingStateChanged的工作實現,一個未記錄的方法。

希望這可以幫助。

iPhone SDK可以利用iPhone的接近傳感器嗎? 如果是這樣,為什麼沒有人利用它們呢? 我可以想像一些不錯的用途。

例如,在賽車遊戲中,您可以將手指放在接近傳感器上,而不是用拇指佔據屏幕空間。 當然,如果這是您唯一的選擇,那麼iPod touch用戶將無法使用該應用程序。

接近傳感器是否會告訴您離您有多近,或者只是在它前面有什麼東西?


顯然,如果狀態欄處於橫向,接近傳感器將永遠不會打開。 即如果你打電話:[UIApplication sharedApplication] .statusBarOrientation = UIInterfaceOrientationLandscapeLeft; 您將不再接近:ON通知。 這肯定發生在OS 3.0上,我無法在2.X設備上進行測試,因為我沒有接近傳感器。 這似乎是一個錯誤。 回答於2009年7月22日5:49凱文蘭伯特

我也遇到過這個問題。 我花了很長時間才弄清楚接近傳感器無法正常工作的真正原因。 當方向是UIInterfaceOrientationLandscapeLeft或UIInterfaceOrientationLandscapeRight時,接近傳感器不起作用; 而在縱向模式下它運作良好。 我的iPhone是iPhone 4S(iOS SDK 5.0)。


只是為了更新,這是可能的。

device = [UIDevice currentDevice];

// Turn on proximity monitoring
[device setProximityMonitoringEnabled:YES];

// To determine if proximity monitoring is available, attempt to enable it.
// If the value of the proximityMonitoringEnabled property remains NO, proximity
// monitoring is not available.

// Detect whether device supports proximity monitoring
proxySupported = [device isProximityMonitoringEnabled];

// Register for proximity notifications
[notificationCenter addObserver:self selector:@selector(proximityChanged:) name:UIDeviceProximityStateDidChangeNotification object:device];

正如benzado指出的那樣,您可以使用:

// Returns a BOOL, YES if device is proximate
[device proximityState];

在iPhone 3.0中,官方支持接近傳感器。 在文檔中查看UIDevice proximityMonitoringEnabled


接近傳感器和環境光傳感器之間存在很多混淆。 iPhone有兩個。 Touch沒有接近傳感器,因此用戶輸入的選擇較差。 無論如何,這將是一個壞主意,因為Apple沒有義務在未來的設備中將它放在同一個地方; 你不應該知道或關心它在哪裡。

接近傳感器通過脈衝紅外LED並測量反射量來工作。 您可以使用iSight攝像頭看到這一點(大多數數碼相機對IR都很敏感​​。)只需啟動Photo Booth,在手機上發起呼叫(或播放語音郵件)並將其指向iSight攝像頭。 注意耳機旁邊的閃光燈; 用手指遮住它,屏幕會變黑。

此時環境光傳感器的API顯然是私密的。


接近傳感器通過測量紅外反射率來工作。 如果您將iPhone連接到網絡攝像頭,您可以看到一個小的脈衝紅外LED。


這有一個公共API。 - [UIApplication setProximitySensingEnabled:(BOOL)]將打開該功能。 順便說一句,它似乎沒有使用光傳感器,因為接近感應會在黑暗的房間裡調整。

但是,當您將手機拿到臉上時,API調用基本上會使屏幕空白。 遺憾的是,對交互沒用。


這沒有公共API。


顯然,如果狀態欄處於橫向,接近傳感器將永遠不會打開。 即,如果你打電話:

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;

您將不再接近:ON通知。

這肯定發生在OS 3.0上,我無法在2.X設備上進行測試,因為我沒有接近傳感器。

這似乎是一個錯誤。