-1

選択したアプリでネットワーク接続が切断または無効になっているように偽装する方法があるかどうかを知りたいです。"Fake Wifi Connection" のような Xposed モジュールが動作しているので、これは可能であると思います。

ありがとうございました。

4

1 に答える 1

0

通常、このようなものを使用して、ネットワークが接続されているかどうかを確認します

        ConnectivityManager connectivityManager
                = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        isConnected = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();

したがって、Xposed を使用して NetworkInfo クラスのメソッド isConnectedOrConnectiong() をフックし、そこから true を返すことができます。

        XposedHelpers.findAndHookMethod(NetworkInfo.class, loadPackageParam.classLoader, "isConnectedOrConnecting", new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                super.beforeHookedMethod(param);
                param.setResult(false);

            }
        });

param.setResult(false) は元のメソッドへの呼び出しをスキップし、呼び出しの結果として false を返します (これは行われません)。

これが役立つことを願っています。

編集:アンドロイドドキュメントから

getActiveNetworkInfo API レベル 1 で追加

ネットワーク情報 getActiveNetworkInfo ()

現在アクティブなデフォルト データ ネットワークに関する詳細を返します。接続すると、このネットワークが発信接続のデフォルト ルートになります。ネットワーク トラフィックを開始する前に、常に isConnected() を確認する必要があります。デフォルトのネットワークがない場合、これは null を返すことがあります。

そのため、デフォルト ネットワークがない場合、呼び出しは null を返す場合があります。その場合、これは機能しません。

于 2017-01-12T07:39:10.137 に答える