2017-02-17 21 views
0

Я просмотрел много мест, попробовал массу вещей, но ничто, похоже, не работало для меня как-то. Может кто-нибудь, пожалуйста, помогите мне здесь. У меня есть простой URL-адрес, который я хочу ударить, не открывая браузер в мобильных телефонах. Я нажимаю кнопку, и этот URL-адрес необходимо получить, без открытия браузера. Меня не интересует то, что на этой странице я просто хочу загрузить. Я в основном нуждаюсь в этом для проекта IOT arduino cum ethernet shield, в котором я контролирую свои устройства с помощью своего телефона Android.Удалите URL-адрес без открытия браузера в Android-студиях

Вот фрагмент того, что я делаю. Apk генерирует без ошибок, но URL-адрес не попадает.

Thankyou

public void led1on(View view){ 
     try { 
     URL u = new URL("http://172.17.27.173/?2"); 
     HttpURLConnection http = (HttpURLConnection) u.openConnection(); 
     http.connect(); 
    }catch (Exception e){ 
     e.getMessage(); 
     e.printStackTrace(); 
    } 
} 
+0

У вас есть разрешение «ИНТЕРНЕТ» в манифесте? Вы вызываете этот метод внутри 'AyncTask' или' Thread'? –

+0

** ничего не работает ** - Что вы подразумеваете под этим? Что такое ошибка/исключение? –

+0

Да, я добавил разрешение INTERNET, и я просто нажимаю кнопку и добавляю onClick в это и ссылаюсь на эту функцию. Надеюсь, я правильно его реализую. –

ответ

0

Используйте этот метод, чтобы открыть URL с вашего приложения

Вы можете назвать этот адрес, как ваш апи призванию, он вызывает URL без дисплея. Или сделайте api (веб-сервис) и удалите приложение, а в конце api вызовите свой URL-адрес.

+0

Ummm, можете ли вы перенаправить меня на любую ссылку, откуда я могу прочитать о том, что вы сказали, или, может быть, даже написать немного кода для того же самого, чтобы я мог правильно ее понять. Thankyou –

1

Вы можете называть это веб-службой и ничего не делать с результатами. Например:

AsyncHttpClient client = new AsyncHttpClient(); 
client.get("http://172.17.27.173/yourpage", params, new AsyncHttpResponseHandler() { 
    @Override 
    public void onSuccess(String response) { // 200 OK 
     // Do nothing 
    } 
    @Override 
    public void onFailure(int statusCode, Throwable error, String content) { // Response not 200 
    { 
     // Some troubleshooting, etc. 
    } 
}); 

Для того, чтобы увидеть, как использовать код выше, вы можете посмотреть на здесь, который объяснил, как использовать код для Android: http://loopj.com/android-async-http/

Также можно использовать другие библиотеки, такие как Apache HTTP-клиент, а также: https://hc.apache.org/

try { 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     myContent = httpEntity.getContent(); 

    } catch ... 
+0

Я считаю, что для этого мне нужно будет добавить зависимости AsyncHttpClient. Уммм, я так много не оборачивал голову вокруг андроид-студии. Не могли бы вы помочь мне здесь, как это сделать? –

+0

Спасибо, он решил мою цель. Я достиг того, чего хотел в этом вопросе, спасибо всем за помощь. –

+0

Нет проблем. Я добавил дополнительные пояснения о том, как использовать код. – Mehdi

-1

Это может быть сделано в следующем простым способом.

switchON.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String webID = "Your url to turn ON device"; 
      Intent bIntent = new Intent(); 
      bIntent.setAction(Intent.ACTION_VIEW); 
      bIntent.addCategory(Intent.CATEGORY_BROWSABLE); 
      bIntent.setData(Uri.parse(webID)); 
      startActivity(bIntent); 
     } 
    }); 
+0

Почему downvote? Работает. Я попробовал. –