[英]ANDROID - Can't connect database from localhost in Android Device
我的代码在Android Emulator中工作。 我可以从本地主机连接到数据库...
但是当我在Android设备上运行时。 该应用程序运行不正常。
您能提供从本地主机到Android设备的连接数据库参考吗? 我已经在Google中搜索过,但没有得到。
public class Login extends Activity implements View.OnTouchListener {
EditText usernameInput, passwordInput;
Button loginButton;
String username, password;
ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();
TextView createAccountLink;
private static String login_url = "http://10.0.2.2/ujian_online/login.php";
private static final String TAG_SUCCESS = "success";
private static final String TAG_PRODUCTS = "products";
ArrayList<HashMap<String, String>> arraylist;
JSONArray products = null;
String image_link;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
usernameInput = (EditText) findViewById(R.id.username);
passwordInput = (EditText) findViewById(R.id.password);
loginButton = (Button) findViewById(R.id.login_button);
jsonParser = new JSONParser();
createAccountLink = (TextView) findViewById(R.id.createAccountLabel);
createAccountLink.setOnTouchListener(this);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new CheckAccounts().execute();
}
});
//HANCURIN SESSION
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if(v.getId() == R.id.createAccountLabel) {
Intent i = new Intent(getApplicationContext(), Registration.class);
startActivity(i);
finish();
}
return true;
}
public class CheckAccounts extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Login.this);
pDialog.setMessage("System checks your account.....");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... args) {
username = usernameInput.getText().toString();
password = passwordInput.getText().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
JSONObject json = jsonParser.makeHttpRequest(login_url, "POST", params);
try {
int success = json.getInt("success");
Log.d("SUKSES", String.valueOf(success));
int id = 0;
if (success == 1) {
products = json.getJSONArray(TAG_PRODUCTS);
for (int i = 0; i < products.length(); i++) {
JSONObject c = products.getJSONObject(i);
id = c.getInt("id");
}
new SessionManagement(getApplicationContext()).putInteger("ID", id);
Intent i = new Intent(getApplicationContext(), MainMenu.class);
startActivity(i);
finish();
} else {
pDialog.setMessage("Your username or password is wrong");
pDialog.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
pDialog.dismiss();
}
}
}
您正在使用10.0.2.2,这是模拟器的特殊URL,仅指向计算机本地主机。 对于真实设备,请使用计算机的实际IP地址,并且位于同一网络上。
您使用的url仅应在仿真器中使用。
这样使用
private static String login_url = "http://real_ip_of_your_machine/ujian_online/login.php";
使用ipconfig(Windows)或ifconfig(Linux / Mac)获取您的行进IP。 另外,您的机器和设备应位于同一网络上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.