【发布时间】:2015-05-05 11:49:51
【问题描述】:
我的要求:-
在我的 Android 项目中,我使用 javamail 连接到 gmail .. 所以,我想当我单击按钮时,将启动一个进度对话框,并在后台尝试连接到 gmail ..如果用户名和密码正确,则表示它连接到 gmail ..然后将转到下一个activity..否则它将关闭进度对话框并显示 toast --“出现问题”
所以我有这个:--
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
pdialog = ProgressDialog.show(context, "", "Please wait...", true);
session = Session.getDefaultInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
});
RetreiveFeedTask task = new RetreiveFeedTask();
task.execute();
}
});
}
class RetreiveFeedTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
try{
Transport transport = session.getTransport("smtp");
// Enter your correct gmail UserID and Password
transport.connect("smtp.gmail.com", username, password);
} catch(Exception e) {
//e.printStackTrace();
Toast.makeText(context, "something is wrong", Toast.LENGTH_SHORT).show();
}
return null;
}
@Override
protected void onProgressUpdate(Void... result) {
pdialog.show();
}
@Override
protected void onPostExecute(String result) {
pdialog.dismiss();
iget = new Intent(context,NextScreen.class);
startActivity(iget);
}
}
但是问题是:--如果它连接到 gmail id 然后它会进入下一个屏幕...如果我输入错误的用户名/密码然后它会崩溃..问题出在哪里在我的代码中??
【问题讨论】:
-
你试过解决方案了吗?