Android-Appのユーザーに、フィードバックに応答する機能を提供します。技術的には、フィードバックが保存されているDBへのコネクタとして機能するPHPスクリプトへのHTTPPOSTを実行します。
私のアプリケーションは世界中で拡大しているので、私は複数の言語の問題に直面しています。この言語で問題が発生しています:
Espagnol - España
Arabic - الØ&
Korean - 대한ë¯&f
Hungary - Magyarország
Turkey - Türkiye
Austria - Österreich
世界中のどこでも機能するフィードバックシステムを実装するためのベストプラクティスは何ですか?
これまで、HttpPostを強化するHttpClientを起動するAsyncTaskを実行していました。私のコードがあります:
public class reqeust_online extends AsyncTask<Void, Integer, Boolean>
{
@Override
protected void onPostExecute(Boolean result)
{
}
@Override
protected Boolean doInBackground(Void... params)
{
int request_widget = 0;
if(((CheckBox)request_dialog.findViewById(R.id.chx_request_widget)).isChecked())
{
request_widget = 1;
}
int request_gallery = 0;
if(((CheckBox)request_dialog.findViewById(R.id.chx_request_gallery)).isChecked())
{
request_gallery = 1;
}
int request_sound = 0;
if(((CheckBox)request_dialog.findViewById(R.id.chx_request_sound)).isChecked())
{
request_sound = 1;
}
/* End */
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(URI.create((getResources().getString(R.string.url_request_send))));
try {
ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("request_widget", request_widget +""));
nameValuePair.add(new BasicNameValuePair("request_gallery", request_gallery +""));
nameValuePair.add(new BasicNameValuePair("request_sound", request_sound +""));
nameValuePair.add(new BasicNameValuePair("request_custom", ((EditText)request_dialog.findViewById(R.id.edt_request)).getText().toString()));
// Debug information
nameValuePair.add(new BasicNameValuePair("device_country", Locale.getDefault().getDisplayCountry()));
nameValuePair.add(new BasicNameValuePair("device_language", Locale.getDefault().getLanguage()));
nameValuePair.add(new BasicNameValuePair("device_model", android.os.Build.MODEL));
nameValuePair.add(new BasicNameValuePair("device_manufacturer", android.os.Build.MANUFACTURER));
post.setEntity(new UrlEncodedFormEntity(nameValuePair, "UTF-8"));
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK)
{
return true;
}
}
catch (Exception e) {}
return false;
}
}
これが私のMysqlDBに送信された値を格納する私のPHPコードです
connect_mysql();
$country = clean($_POST['device_country']);
$language = clean($_POST['device_language']);
$model = clean($_POST['device_model']);
$manufacturer = clean($_POST['device_manufacturer']);
$widget = clean($_POST['request_widget']);
$gallery = clean($_POST['request_gallery']);
$sound = clean($_POST['request_sound']);
$custom = clean($_POST['request_custom']);
mysql_query("INSERT INTO wm2014_request (widget,gallery,sound,custom,country,language,model,manufacturer) VALUES ('$widget','$gallery','$sound','$custom','$country','$language','$model','$manufacturer')") or die (http_response_code(204));
http_response_code(200);
function clean($str)
{
$str = @trim($str);
$str = htmlentities($str);
if(get_magic_quotes_gpc())
{
$str = stripslashes($str);
}
$str = mysql_real_escape_string($str);
$str = addslashes($str);
return $str;
}
MySQL DBをセットアップしたutf8_general_ci
ので、これは問題にならないはずです。
手伝って頂けますか?