iPhone Bluetooth GKPeerPickerController ausschalten

9

Ich stimme zu, dass diese Frage doppelt ist. Bitte bei mir tragen. Ich war auch unter euch allen zu glauben, dass es nicht möglich ist, Bluetooth programmatisch ein- / auszuschalten.

Aber mit GKPeerPickerController , wenn Bluetooth nicht aktiviert ist, wird der Benutzer aufgefordert, es einzuschalten. Fair genug, um das Bluetooth einzuschalten.

Ich habe mit meiner Überzeugung gewettet, dass wir das Bluetooth nicht programmatisch ausschalten können, weil es keinen Weg gibt. Aber diese Anwendung tut das, also hatte ich keine Wahl zu verweigern.

>

Ich möchte nur bestätigen, ob es möglich ist oder nicht und wenn ja, wie kann ich das Bluetooth mit GKPeerPickerController oder einem anderen öffentlichen API-Weg ausschalten?

    
Janak Nirmal 19.06.2012, 13:40
quelle

2 Antworten

2

Ich weiß, dass dies nicht die gewünschte Antwort ist, aber nein , Sie können Bluetooth nicht programmgesteuert mit Apple-genehmigten APIs deaktivieren.

Es gibt eine Reihe von Apps in diesem Jahr im App Store genehmigt, die dies getan haben .

Aber sie werden immer kurz nach der Veröffentlichung von Apple entfernt, sobald sie (Apple) erkennen, was vor sich geht. Sie verwenden sicherlich private APIs.

Entweder Entwickler sind dumm genug zu denken, dass sie nicht bemerkt werden, oder sie hoffen einfach, in ein paar Wochen Umsatz zu ziehen, bevor Apple die App zieht, was genug sein könnte, um ihre Kosten mit etwas Profit zurückzahlen .

Das Problem besteht darin, dass es mehrere Möglichkeiten gibt, zu überprüfen, ob eine App private APIs verwendet. Wenn Entwickler Objective-C-Frameworks auf normale Weise verwenden, ist das eine einfache Überprüfung. Tatsächlich macht Xcode dies automatisch , wenn Sie es verwenden, um App-Binärdateien in iTunes Connect hochzuladen. Aber es ist keine vollständige Überprüfung. Einmal bei Apple, führen die Rezensenten eine weitere Überprüfung durch, die, wie ich feststellen konnte, komplexer ist als das, was Xcode tut.

Allerdings ist dieser Check immer noch nicht perfekt, und ich bin der Meinung , dass es nicht unbedingt eine Frage eines faulen Rezensenten ist, der einfach vergessen hat, den Check durchzuführen. Objective-C gibt Ihnen einige Techniken für Verschleiern von Methodenaufrufen. Abhängig davon, wie Sie diese Techniken verwenden, können Sie an den Überprüfern vorbeikommen. Meiner Erfahrung nach habe ich allen Grund (zwinkernd, zwinkern) zu glauben, dass Apple nicht jede App auf einer voll instrumentierten Version von iOS ausführt, die alle Funktionsaufrufe protokollieren und sogar den besten Versuch vereiteln könnte Verbergen der privaten API-Nutzung durch Verschleierungstechniken.

Ich kann Ihnen also so ziemlich garantieren, dass dies die Apps erklärt, die Sie im App Store gefunden haben und die Bluetooth deaktivieren. Mit öffentlichen GameKit-APIs können Sie Bluetooth aktivieren, aber nicht ausschalten.

Disclaimer: Ich habe nie für Apple gearbeitet und keine Apple Insider haben mir Informationen gegeben. Aber ich habe private APIs durch den Überprüfungsprozess bekommen.

    
Nate 26.06.2012, 03:49
quelle
-1

Bitte versuchen Sie den folgenden Code und ich denke, dass es auch für Sie funktioniert.

%Vor%

Sie müssen die BluetoothManager-Klasse / das Framework in Ihrem Projekt hinzufügen.

Danke

    
Mitesh Khatri 29.06.2012 13:16
quelle