2012-02-08 10 views
3

プログラムでブルートゥースのオンとオフを切り替えるのは、AppleのiTunesストアからアプリが拒否されるiOSのプレビオバージョンの「プライベートAPI」だった。iOS 5:プログラムでブルートゥースのオンとオフを切り替える

しかし、iOS 5では、プログラムで画面の明るさを変更するなど、プライベートではなくなったプライベートなものを認識しています。そうすることで、iOS 5搭載のiTunesでアプリが拒否されることはなくなりました。そのため、Bluetoothアダプタのように他のものが公開されているのかどうか疑問です。

+1

[1]質問[この]を見てみましょう [1]:http://stackoverflow.com/questions/1743610/programmatically-turn-on-bluetooth-in-the-iphone- sdk –

+0

私は、2009年に存在しなかった5を言った。 – CQM

+2

申し訳ありません、私はちょうど助けようとしました –

答えて

5

CoreBluetoothは、残念ながら、それが唯一の新しいBluetoothのLE(低エネルギー)デバイスのために働くのiOS 5で公開されている。

CoreBluetooth Documentation

を参照してください。
+2

このPDFは空です。 – whatchamacallit

+1

これまで使われていませんでした。 。 https://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CoreBluetooth_Framework/_indexを試してください。html – EricS

+0

それはうまくいった。私はリンゴがいかに動き回るかが大好きです。 – whatchamacallit

1

いいえ、Bluetoothはまだ利用できません:(

+0

これは、回答よりもコメントに合っています –

2

これは公開されていません。あなたが拒否されます。

+1

"Public"と "Rejected"このためのAPIがある場合、それは公開されています。 Appleは、あなたのアプリの使い方に基づいてアプリを拒否することがあります。 – whatchamacallit

+1

@whatchamacallit:Bluetoothが有効か無効かを制御するシステム環境設定のAPIはありません。 EricSのPDFは、Bluetoothをオン/オフする方法ではなく、iOS 5でBluetooth LEを使用する方法に関するものです。 –

2

OS 5.1を実行しているiPodでPrivate BluetoothManager APIを正常に使用することができました。

だから私はまだそれが動作すると言うでしょう。

ここではサンプルの一番下にhttp://www.pocketmagic.net/?p=2827というサンプルを作成しました。 ここでは、Bluetoothのオン/オフだけでなく、リモートBluetoothデバイスの検出やユーザーインターフェイスへのリストアについても詳しく説明しています。

+2

私は本当に厄介な発見をしました。 setPoweredとsetEnabledの呼び出しをメインスレッドで実行する必要があります。私がdispatch_get_main_queueへのディスパッチでそれをラップするまで、viewDidLoadにコールを入れてもブルートゥースがオンまたはオフにならなかった – xaxxon

2

プログラムでブルートゥースを有効にする必要がありました。私がしたことは、GKPeerPickerControllerを使用していました。これは、まだオンになっていない場合に、Bluetoothを有効にするように頼みます。次に、GKPeerPickerControllerDelegateの呼び出しで、ピッカーを閉じます。

完璧でないと、「デバイスの検索」が短時間で表示されますが、これは他の方法(私が知る限り)で動作しません。

GKPeerPickerController * peerpicker = [[GKPeerPickerController alloc]init]; 
peerpicker.delegate = self; 
peerpicker.connectionTypesMask = GKPeerPickerConnectionTypeNearby; 
[peerpicker show]; 

ピアピッカーが検索する準備ができたら、ピッカーが使用するGKSessionを返す代理メソッドがあります。これはあなたがそれを却下する場所です。

-(GKSession*)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type 
{ 
    [picker dismiss]; 
    [picker autorelease]; 
    return nil; 
} 

あなたのアプリは拒否されません。

関連する問題