很抱歉这个令人困惑的标题。我有一个应用程序,我希望我的用户向我发送反馈。我需要的东西不是太花哨,只是一个文本框,用户可以键入和按钮发送消息到我已经设置的电子邮件帐户的反馈。我希望用户能够在不使用任何电子邮件帐户或其他帐户的情况下执行此操作。我可以使用JSON之类的东西发送反馈吗?
答案 0 :(得分:0)
您可以使用GCM(Google云消息)。您可以找到代码here。
答案 1 :(得分:0)
您可以允许用户通过基本电子邮件验证检查发送反馈。这部分代码在API级别8及更高级别上运行。点击发送按钮只需执行此基本电子邮件验证
public boolean checkEmail(String email) {
try {
return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
} catch (Exception e) {
Logging.e(TAG, "Email Validation", "Error: "+e.getMessage(),e);
}
return false;
}
如果验证返回true。然后从编辑文本中获取输入的电子邮件ID和文本内容,并构建一个帖子url并检查响应是否为HttpStatus.SC_OK.if它返回ok然后从post执行调用活动中的方法使用监听器来显示一个弹出窗口,反馈已成功发送。发布网址并检查响应。在背景中填写网址,并将网址传递给此方法,在您的Utils类中返回响应。
public static boolean sendRequestOnly(String url) {
DefaultHttpClient client = returnHttpClient();
HttpGet getRequest = new HttpGet(url);
try {
HttpResponse resp = client.execute(getRequest);
final int statusCode = resp.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
Logging.d("ClassName", "Retreive response", "Status Code "
+ statusCode + " for URL " + url);
return true;
} else {
return false;
}
} catch (IOException e) {
getRequest.abort();
}
return false;
}
答案 2 :(得分:0)
框架网址在方法中有这个。发送的反馈必须与您联系吗?
String url = "https://blablabla.net/";
StringBuilder sbUrl = new StringBuilder("feedback.jsp?email=");
sbUrl.append(emailId);
sbUrl.append("&content=");
sbUrl.append(textContent);
sbUrl.append("&subject=");
sbUrl.append(subject);
sbUrl.append("&os_version=");
sbUrl.append(OptimumConstants.OS_VERSION);
//如果您想要向您发送反馈的userId.Person等 sbUrl.append( “&安培; USER_ID =”); sbUrl.append(settings.getString( SomeConstants.LOGGED_IN_USERNAME,“”)); //这里你可以附加任何其他请求urlparams,如设备ID,设备类型,操作系统版本等只有你想要所有这些信息 sbUrl.append( “&安培;” + Utils.FewOtherRLParams); url + = sbUrl.toString();
boolean resp= Utils.sendRequestOnly(url);
return resp;
答案 3 :(得分:0)
此方法适用于连接出现问题时的默认超时,例如套接字超时或连接超时。
public static DefaultHttpClient returnHttpClient() {
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used.
int timeoutConnection = 60000;
HttpConnectionParams.setConnectionTimeout(httpParameters,
timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT)
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 600000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
return new DefaultHttpClient(httpParameters);
}