3

NFC と wifi ダイレクトでアプリケーションを開発しています。NFC と Wifi Direct を使用して MAC アドレスを取得し、データを転送します。私はdiscoverpeers()を呼び出し、成功することができました。しかしWIFI_P2P_PEERS_CHANGED_ACTION、コールバックはありません。コールバックは、設定に移動してwifidirectを選択したときにのみ発生します。

これは他の質問で議論されました

コードから WiFi-Direct をオンにすることはできますか? Android API-14 (ICS) で

「JB 以降 (少なくとも AOSP では) の WiFi ダイレクトは常にアクティブではないことを付け加えたいと思います。アクティブであるように見えるだけです。WiFi ダイレクトのリスナーを見ると、しばらくすると自動的にオフになります。ただし、wifi ダイレクト メニューを開くと、自動的にオンに戻ります.ホストにピア検索を実行させるか、ホストを見つけることができるようにする必要があるかもしれません.おそらくバッテリー節約のトリックです.接続を受け入れると、システム全体がロックされ、接続に失敗することがあるため、ブロックします. (システムへの招待) – Mgamerz "

WIFI_P2P_PEERS_CHANGED_ACTION問題のコールバックの解決策を提案できますか?

私は2つのデバイスSamsung galaxy nexusとnexus 7を両方とも4.2.2で実行していました

4

5 に答える 5

4

有効にする API はありませんが、Android 設定 4.0.1 からwifiP2Pメソッド「enableP2p」を呼び出すことができます

WifiP2pManager manager = (WifiP2pManager) getActivity().getSystemService(Context.WIFI_P2P_SERVICE);
Channel channel = manager.initialize(getActivity(), getActivity().getMainLooper(), null);

try {
            Method method1 = manager.getClass().getMethod("enableP2p", Channel.class);
            method1.invoke(manager, channel);
            //Toast.makeText(getActivity(), "method found",
             //       Toast.LENGTH_SHORT).show();
} catch (Exception e) {
            //Toast.makeText(getActivity(), "method did not found",
                 //   Toast.LENGTH_SHORT).show();
        }

無効にするにwifiP2Pは、このメソッドを使用します

Method method1 = manager.getClass().getMethod("disableP2p", Channel.class);
于 2013-12-11T23:56:57.513 に答える
1

user3093354 に感謝します。呼び出す必要がある p2p を無効にするために、ソリューションを続行するには:

Method method1 = manager.getClass().getMethod("disableP2p", Channel.class);
于 2014-04-02T16:55:53.963 に答える
0

ルート化されている場合は、必要な同時実行レベルでコマンド プロンプトから wifi ドライバーを読み込むことができます。

/system/bin/insmod /system/lib/modules/wlan.ko con_mode=3

値は次のとおりです。
typedef enum { VOS_STA_MODE=0, VOS_STA_SAP_MODE=1, VOS_P2P_CLIENT_MODE, VOS_P2P_GO_MODE, VOS_MONITOR_MODE, VOS_FTM_MODE = 5, VOS_IBSS_MODE, VOS_P2P_DEVICE_MODE, VOS_MAX_NO_OF_MODE } tVOS_CON_MODE;

これは Atheros カード用です。

于 2015-09-28T19:07:12.940 に答える