У меня проблема с некоторыми устройствами, такими как Android Box или телефоны Huawei.
Мне нужно защитить свое приложение, если пользователь использует приложение для мониторинга пакетов, что я сделал, если у пользователя есть активная vpn на своем устройстве, не запрашивая jsonparse
но некоторые устройства, даже если vpn не активен, jsonparse не запускается.
Вот мой код
public static boolean isVpnConnectionActive() {
List<String> networks = new ArrayList<>();
try {
for (NetworkInterface networkInterface : Collections.list(NetworkInterface.getNetworkInterfaces())) {
if (networkInterface.isUp()) {
networks.add(networkInterface.getName());
}if (networkInterface.getName().contains("tun0")|| networkInterface.getName().contains("ppp0")) {
System.exit(1);
}
}
} catch (Exception ignored) {
}
return networks.contains("tun0");
}
Я запрашиваю jsonParse при запуске и создании, чтобы пользователь не активировал VPN после запуска моего приложения
@Override
protected void onStart() {
super.onStart();
if (isVpnConnectionActive()) {
}else { jsonParse();}}
Я запрашиваю анализ json таким образом
private void jsonParse() {
final String url = "http://example.dns.net/json.php";
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("employees");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject employee = jsonArray.getJSONObject(i);
String Urlx = employee.getString("urlx");
String Urlc = employee.getString("urlc");
String Urlb = employee.getString("urlb");
String TextBar = employee.getString("TextBar");
DFG_1 = Urlx;
DFG_2 = Urlc;
DFG_3 = Urlb;
Text_Bar = TextBar;
text2.setText(TextBar);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mQueue.add(request);
}
почему Android пирог и некоторые устройства не работают таким образом?