2017-09-18 23 views
6

Wiifiテザリングを有効にしてアクセスポイントを作成するには、WifiManager隠しAPIを使用しています。今Android上でAPI 26の問題は、タグ@RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED)setWifiApEnabled機能に追加されたことで、今、その呼び出しはfalseを返し、次のログが出力されます。Android O WiFiホットスポットをプログラムで有効にする方法

W/WifiManager:PACKAGE_NAMEはsetWifiApEnabled真= enabledに通話を試みました新しいドキュメントを読ん

、それは機能が廃止されており、今後のリリースで削除され、呼び出し側が適切な権限を持っていますが、このアプローチはありませんTETHER_PRIVILEGED権限で同じ問題を抱えている場合は代わりにConnectivityManager#startTetheringを使用することを言います。ドキュメントに提示されている他のオプションの1つはLocalOnlyHotspotの使用ですが、作成されたホットスポットにはインターネット接続がないため、プロジェクトには使用できません。

私はまた、隠されたAPIからではなく、次の例外がスローされますので、成功していない結果とstartSoftAp機能をテストしてみた:

どちらのユーザーも10164現在のプロセスがありませんandroid.permission.NETWORK_STACK:WifiService

新しいAPIでWifiホットスポットを有効にする回避策はありますか?私もWi-Fiテザリングの代替案を探しましたが、唯一の実行可能な代替手段は、3G速度を得ることの欠点を持つBluetoothテザリングであるようです。 Wifi AwareとWifi P2Pも考慮されましたが、これらはデバイス間でインターネット接続が共有されていないという問題があります。

これにアプローチする方法についてのご意見はありますか?

+0

[https://stackoverflow.com/questions/45984345/how-to-turn-on-off-wifi-hotspot-programatically-in-android-8-0-oreo](https://stackoverflow.com)/question/45984345/how-to-turn-on-off-wifi-hotspot-programically-in-Android-8-0-oreo) – Mark

+0

[Android 8.0でプログラマチックにWiFiホットスポットをオン/オフにする方法)](https://stackoverflow.com/questions/45984345/how-to-turn-on-off-wifi-hotspot-programatically-in-android-8-0-oreo) – tripleee

答えて

1

いいえ、Android Oではセキュリティが強化されていますので、Androidのビルドでシステムapkをコンパイルしない限り、APIを使用することはできません。必要に応じてLocalOnlyHotspotCallbackを使用できます

2

これは何度も回答されています。 Snehashish Agarwalによると、setWifiApEnabled()メソッドとstartThethering()メソッドはプライベートAPIです。それらは@hideで注釈付けされています。つまり、それらは非公開です。サードパーティのアプリケーションはプライベートAPIを直接呼び出すべきではありません。将来彼らが働くという保証はありません。あなたの場合のように。

また、startLocalOnlyHotspotにインターネットアクセスはありません。 Wi-Fiホットスポットに接続されたデバイス間で通信するためのローカルのホットスポットです。この方法ではインターネットにアクセスできません。

現在、モバイルホットスポットを有効にするための公式のAPI呼び出しはありません。

関連する問題