2017-02-20 5 views
-1

В настоящее время я работаю над Android-приложением, которое должно загружать все из базы данных mySQL онлайн, и все это будет храниться локально с использованием SQLite, встроенного в android.Android-устройство, подключенное к серверу mysql

Проблема, с которой я столкнулся в данный момент, заключается в подключении устройства Android к серверу. Я еще не понял, как вывести информацию.

import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 

import org.apache.http.NameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import static android.content.ContentValues.TAG; 

public class LoginWorker { 

JSONParser jParser = new JSONParser(); 

ArrayList<HashMap<String, String>> usersList; 

private static String url_all_users = "http://localhost/get_user_login.php"; 

private static String TAG_SUCCESS = "success"; 
private static String TAG_USERS = "users"; 
private static String TAG_EMAIL = "email"; 
private static String TAG_PASSWORD = "password"; 

JSONArray users = null; 

public void onCreate(){ 
    System.out.print("Login worker onCreate started"); 
    usersList = new ArrayList<HashMap<String, String>>(); 

    HashMap<String, String> map = new HashMap<>(); 
    map.put("test","test"); 

    usersList.add(map); 

    Log.d(TAG, "onCreate: LoadAllUsers Running now"); 

    new LoadAllUsers().execute(); 

} 

class LoadAllUsers extends AsyncTask<String, String, String>{ 

    protected void onPreExecute(){ 
     super.onPreExecute(); 
    } 

    protected String doInBackground(String... args){ 

     Log.d(TAG, "doInBackground: Start of method"); 

     List<NameValuePair> params = new ArrayList<NameValuePair>(); 

     JSONObject json = jParser.makeHttpRequest(url_all_users, "GET", params); 



     try { 
      int success = json.getInt(TAG_SUCCESS); 

      if (success == 1) { 
       users = json.getJSONArray(TAG_USERS); 

       for (int i = 0; i < users.length(); i++) { 
        JSONObject c = users.getJSONObject(i); 

        String password = c.getString(TAG_PASSWORD); 
        String email = c.getString(TAG_EMAIL); 

        HashMap<String, String> map = new HashMap<String, String>(); 

        map.put(TAG_EMAIL, email); 
        map.put(TAG_PASSWORD, password); 

        usersList.add(map); 
       } 
      } else { 
       Log.d("doInBackground : ", "No user found"); 
      } 
     }catch(JSONException e){ 
       e.printStackTrace(); 
      } 
     return null; 
     } 

    protected void onPostExecution(){} 
} 

Это пример некоторого кода, над которым я работал (для входа пользователя). Есть ли более простой способ сделать это соединение без использования JSON и PHP? Любая помощь будет принята с благодарностью, даже если это просто ссылки на полезные блоги или учебники!

ответ

0

Следуйте этим учебным пособиям для подключения к mysql db и создав api, который можно использовать для извлечения данных.

Для подключения к БД и создать API:

https://www.simplifiedcoding.net/php-restful-api-framework-slim-tutorial-1/ https://www.simplifiedcoding.net/create-chat-app-for-android-using-gcm-1/

после создания API вы можете использовать переоснащение, чтобы получить данные из API.

http://www.androidhive.info/2016/05/android-working-with-retrofit-http-library/