2012-06-19 10 views
9

Zgadzam się, że to pytanie jest duplikatem. Proszę, weź mnie. Byłem także pośród was wszystkich, aby uwierzyć, że nie jest możliwe programowe włączanie/wyłączanie bluetooth.iPhone wyłączyć Bluetooth GKPeerPickerController

Jeśli jednak bluetooth nie jest ustawiony na użytkownika, zostanie wyświetlony monit o jego włączenie. Wystarczająco fair, aby włączyć Bluetooth.

Obstawiałem z przekonaniem, że nie możemy wyłączyć programu bluetooth programowo, ponieważ nie ma możliwości. Ale zrobiło to this application, więc nie miałem wyboru, aby odmówić.

Chcę tylko potwierdzić, czy jest to możliwe, czy nie, a jeśli tak, to jak wyłączyć bluetooth za pomocą GKPeerPickerController lub jakiegokolwiek innego publicznego interfejsu?

+0

Podejrzewam, że wkrótce aplikacja może zostać pobrana.Była inna aplikacja, która zrobiła coś podobnego i która przetrwała w AppStore tylko przez tydzień. –

+0

Ma to związek z tym, że włącza bluetooth za pomocą metody wykorzystującej bluetooth i prawdopodobnie ulegając awariom z bluetooth, dzięki czemu ios ją zabija. (tylko przypuszczenie) – Pochi

+0

Dziękujemy za oba wejścia. Właściwie z recenzji widać, że aplikacja naprawdę działa i włącza się lub wyłącza. Dzięki GKPeerPickerController możemy poprosić użytkownika o włączenie bluetooth, ale jak go wyłączyć, jest jeszcze tajemnica i dlatego istnieją pytania. –

Odpowiedz

2

wiem, że to nie jest odpowiedź chcesz, ale nr, nie można wyłączać bluetooth programowo z Apple zatwierdzonych API.

Było wiele aplikacji approved on the App Store this year that have done this.

Są one jednak usuwane przez Apple wkrótce po wydaniu, gdy tylko (Apple) zorientują się, co się dzieje. Z pewnością korzystają z prywatnych interfejsów API.

Deweloperzy są na tyle głupi, aby myśleć, że nie zostaną zauważeni, lub po prostu mają nadzieję, że uda im się uzyskać kilka tygodni przychodów, zanim Apple wyciągnie aplikację, co może być wystarczające, aby spłacić swoje koszty. zysk.

Problem polega na tym, że istnieje wiele sposobów sprawdzania, czy aplikacja korzysta z prywatnych interfejsów API. Jeśli programiści używają frameworków C w normalny sposób, jest to łatwa kontrola. W rzeczywistości, Xcode does some of this automatically, gdy używasz go do przesyłania plików binarnych aplikacji do iTunes Connect. Ale to nie jest kompletna kontrola. Raz w Apple, recenzenci wykonują kolejną kontrolę, którą udało mi się wydedukować, jest bardziej wyrafinowana niż to, co robi Xcode.

Jednak ta kontrola wciąż nie jest idealna i jestem z opinii, że niekoniecznie jest to kwestia leniwego recenzenta, który właśnie zapomniał wykonać czek. Objective-C udostępnia kilka technik dla wywołań metodowych obfuscating. W zależności od tego, w jaki sposób korzystasz z tych technik, możesz przejść przez recenzentów. Z mojego doświadczenia wynika, że ​​mam wszelkie powody (mrugnięcia, mrugnięcia), aby sądzić, że Apple nie uruchamia każdej aplikacji w pełni oprzyrządowanej wersji iOS, która może rejestrować wszystkie wywołania funkcji i pokonać nawet najlepszą próbę ukrycia prywatnego użycia interfejsu API. za pomocą technik obfuskacji.

Tak, mogę zagwarantować, że to wyjaśnia aplikacje, które znalazłeś w App Store, które wyłączają Bluetooth. Publiczne interfejsy API GameKit umożliwiają włączanie Bluetooth, ale nie wyłączanie.

Nota prawna: Nigdy nie pracowałem dla Apple, a żaden z pracowników Apple nie przekazał mi informacji. Ale dostałem prywatne API poprzez proces recenzji.

-1

Proszę wypróbować poniższy kod i myślę, że to również będzie działać.

Class BluetoothManagerClass = objc_getClass("BluetoothManager"); 
    BluetoothManager *btCont; = [BluetoothManagerClass sharedInstance]; 

[btCont setPowered:NO]; 

Musisz dodać klasę/framework BluetoothManager w swoim projekcie.

Dzięki

+0

dziękuję za twój wkład. Ale myślę, że to należy do prywatnego API, prawda? Czy przejdzie przez sklep z aplikacjami? –

+0

Tak. To prywatne. –

Powiązane problemy