2012-06-19 35 views
9

Tôi đồng ý rằng câu hỏi này là trùng lặp. Xin vui lòng chịu với tôi. Tôi cũng là một trong số các bạn tin rằng không thể bật/tắt bluetooth theo chương trình.iPhone tắt bluetooth GKPeerPickerController

Nhưng sử dụng GKPeerPickerController nếu bluetooth không ở trên người dùng sẽ được nhắc bật tính năng này. Đủ công bằng để bật bluetooth.

Tôi đã đặt cược với niềm tin của mình rằng chúng tôi không thể tắt bluetooth theo chương trình vì không có cách nào. Nhưng this application làm vậy nên tôi không có lựa chọn từ chối.

Tôi chỉ muốn xác nhận xem nó có khả thi hay không và nếu có cách tắt bluetooth bằng cách sử dụng GKPeerPickerController hoặc bất kỳ cách thức công khai nào khác?

+0

Tôi cho rằng ứng dụng đó có thể sớm bị rút.Có một ứng dụng khác đã làm một điều tương tự và chỉ tồn tại trên AppStore trong một tuần hoặc lâu hơn. –

+0

Nó phải làm với một cái gì đó xung quanh nó bật bluetooth với một phương pháp sử dụng bluetooth và có thể đâm chính nó với bluetooth để ios giết nó. (chỉ cần đoán) – Pochi

+0

Cảm ơn bạn đã nhập cả hai yếu tố đầu vào của mình. Trên thực tế, chúng tôi có thể thấy rằng ứng dụng thực sự hoạt động và giúp bật hoặc tắt. Với GKPeerPickerController, chúng tôi có thể yêu cầu người dùng bật bluetooth nhưng cách tắt nó là bí ẩn và vì vậy câu hỏi tồn tại. –

Trả lời

2

Tôi biết đây không phải là câu trả lời bạn muốn, nhưng không, bạn không thể tắt bluetooth theo lập trình với API được Apple phê duyệt.

Đã có một số ứng dụng approved on the App Store this year that have done this.

Nhưng, họ tiếp tục bị Apple xóa ngay sau khi phát hành, một khi họ (Apple) nhận ra những gì đang xảy ra. Họ chắc chắn đang sử dụng các API riêng tư. Cả hai nhà phát triển là ngu ngốc, đủ để nghĩ rằng họ sẽ không được nhận thấy, hoặc họ chỉ đơn giản là hy vọng để kéo trong một vài tuần doanh thu trước khi Apple kéo các ứng dụng, mà có thể là đủ để trả lại chi phí của họ, với một số lợi nhuận.

Vấn đề là có một số cách để kiểm tra xem ứng dụng có đang sử dụng API riêng tư hay không. Nếu các nhà phát triển đang sử dụng các khung mục tiêu C theo cách thông thường, thì đó là một kiểm tra dễ dàng. Trên thực tế, Xcode does some of this automatically khi bạn sử dụng nó để tải lên tệp nhị phân ứng dụng lên iTunes Connect. Nhưng, nó không phải là một kiểm tra hoàn chỉnh. Khi ở Apple, người đánh giá thực hiện một kiểm tra khác, điều mà tôi có thể suy ra là phức tạp hơn so với những gì Xcode làm.

Tuy nhiên, kiểm tra đó vẫn không hoàn hảo và tôi là quan điểm của rằng đó không nhất thiết là vấn đề người đánh giá lười biếng chỉ quên thực hiện kiểm tra. Mục tiêu-C cung cấp cho bạn một số kỹ thuật cho các cuộc gọi phương thức obfuscating. Tùy thuộc vào cách bạn sử dụng các kỹ thuật này, bạn có thể vượt qua những người đánh giá. Theo kinh nghiệm của tôi, tôi có mọi lý do (wink, wink) để tin rằng Apple không chạy mọi ứng dụng trên một phiên bản iOS đầy đủ, có thể ghi tất cả các cuộc gọi chức năng và đánh bại ngay cả nỗ lực tốt nhất để ẩn sử dụng API riêng tư thông qua kỹ thuật obfuscation.

Vì vậy, tôi hoàn toàn có thể đảm bảo với bạn rằng điều này giải thích các ứng dụng bạn đã tìm thấy trên App Store tắt Bluetooth. API GameKit công khai cho phép bạn bật Bluetooth nhưng không tắt.

Tuyên bố từ chối trách nhiệm: Tôi chưa bao giờ làm việc cho Apple và không có người trong Apple nào cung cấp thông tin cho tôi. Nhưng, tôi đã nhận được các API riêng tư thông qua quá trình đánh giá.

-1

Vui lòng thử mã dưới đây và tôi nghĩ rằng nó cũng sẽ làm việc cho bạn.

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

[btCont setPowered:NO]; 

Bạn cần thêm lớp/khung công tác BluetoothManager vào dự án của mình.

Cảm ơn

+0

cảm ơn bạn đã nhập. Nhưng tôi đoán điều này thuộc về api riêng phải không? Nó sẽ đi qua cửa hàng ứng dụng? –

+0

Vâng. Riêng tư của nó. –

Các vấn đề liên quan