В настоящее время я работаю над приложением для Android, которое должно загружать все из онлайновой базы данных MySQL, которая затем будет храниться локально с использованием SQLite, встроенного в Android.
Проблема, с которой я сталкиваюсь в данный момент, заключается в подключении устройства 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? Любая помощь будет принята с благодарностью, даже если это просто ссылки на полезные блоги или учебные пособия!
Следуйте этим учебникам для подключения к 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/
Других решений пока нет …