2012-06-19 2 views
9

Я согласен, что этот вопрос повторяется. Пожалуйста, несите меня. Я тоже был среди вас всех, чтобы поверить, что невозможно программно включить/выключить Bluetooth.iPhone выключить bluetooth GKPeerPickerController

Но с использованием GKPeerPickerController, если Bluetooth не будет у пользователя, будет предложено включить его. Достаточно справедливо, чтобы включить Bluetooth.

Я держал пари, полагая, что мы не можем отключить bluetooth программно, поскольку нет способа. Но this application делает это, поэтому у меня не было выбора отказаться.

Я просто хочу подтвердить, возможно ли это или нет, и если да, как отключить Bluetooth, используя GKPeerPickerController или любой другой общедоступный способ api?

+0

Я подозреваю, что приложение может быть доставлено в ближайшее время.Было другое приложение, которое делало подобную вещь и что только выжило в AppStore в течение недели или около того. –

+0

Это связано с чем-то вокруг него, включающим Bluetooth с помощью метода, который использует bluetooth и, вероятно, сбой с Bluetooth, так что ios его убивает. (просто догадка) – Pochi

+0

Благодарим вас за оба входа. Фактически из обзоров мы видим, что приложение действительно работает и помогает включать и выключать. С GKPeerPickerController мы можем попросить пользователя включить bluetooth, но как отключить его, пока еще загадка, и поэтому возникают вопросы. –

ответ

2

Я знаю, что это не тот ответ, который вы хотите, но no, вы не можете отключить bluetooth программно с одобренными Apple API.

Было множество приложений approved on the App Store this year that have done this.

Но они вскоре уходят с производства Apple вскоре после выпуска, когда они (Apple) осознают, что происходит. Они, конечно, используют частные API.

Либо разработчики достаточно глупы, чтобы думать, что их не заметят, либо просто надеются вытащить пару недель дохода, прежде чем Apple вытащит приложение, чего может быть достаточно, чтобы окупить их стоимость. прибыль.

Проблема заключается в том, что существует несколько способов проверить, использует ли приложение частные API. Если разработчики используют объектно-C-рамки в обычном режиме, это простая проверка. Фактически, Xcode does some of this automatically, когда вы используете его для загрузки бинарных файлов приложений в iTunes Connect. Но это не полная проверка. Однажды в Apple рецензенты выполняют еще одну проверку, которую я смог вывести, более сложной, чем то, что делает Xcode.

Тем не менее, эта проверка все еще не идеальна, и я из мнения что это не обязательно вопрос ленивого рецензента, просто забывающего выполнить чек. Objective-C дает вам несколько методов для вызовов методов obfuscating. В зависимости от того, как вы используете эти методы, вы можете пройти . По моему опыту, у меня есть все основания (подмигивать, подмигивать), полагая, что Apple не запускает каждое приложение на полностью оборудованной версии iOS, которое могло бы регистрировать все вызовы функций и победить даже самую лучшую попытку скрыть использование частного API с помощью методов обфускации.

Итак, я могу в значительной степени гарантировать вам, что это объясняет приложения, которые вы нашли в App Store, которые отключили Bluetooth. Публичные API GameKit позволяют включать Bluetooth, но не выключены.

Отказ от ответственности: Я никогда не работал на Apple, и ни один инсайдер Apple не предоставил мне информацию. Но через процесс обзора я получил частные API.

-1

Пожалуйста, попробуйте ввести код ниже и я думаю, что это также сработает для вас.

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

[btCont setPowered:NO]; 

Вам необходимо добавить класс/рамки BluetoothManager в свой проект.

Спасибо

+0

Благодарю вас за ввод. Но я предполагаю, что это принадлежит частной апи, не так ли? Будет ли он проходить через магазин приложений? –

+0

Да. Это личное. –

Смежные вопросы