我想通过此代码提取在 gmail 中发送邮件的人的邮件 ID,并使用 Media Player 逐字符播放。但是在我声明 MediaPlayer.create(MailSender.this,R.raw.sound) 的 try 块中,创建带有下划线,它说它与 (Context,int) 类型不匹配。
甚至 getApplicationContext() 也不起作用。我该怎么办?代码在这里
package com.mycomp.android.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.mail.Message;
import javax.mail.MessagingException;
import android.app.ProgressDialog;
import android.media.MediaPlayer;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
public class MailSender extends AsyncTask<Void, Integer, Integer> {
MediaPlayer mPlayer=null;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
}
@Override
protected Integer doInBackground(Void... params) {
EmailManager ob=new EmailManager("user","password","gmail.com","smtp.gmail.com","imap.gmail.com");
try {
Message result[]=ob.getMails();
for (int i = 0; i < result.length; i++) {
Log.d("From", result[i].getFrom()[0] + "");
String s=result[i].getFrom()[0].toString();
String formed=s;
if(s.contains("<")&&s.contains(">"))
{
formed="";
int start=s.indexOf('<');
int end=s.indexOf('>');
for(int j=start+1;j<end;j++)
{
formed=formed+s.charAt(j);
}
}
System.out.println("Baby "+formed);
MediaPlayer mPlayer=MediaPlayer.create(MailSender.this,R.raw.a);
mPlayer.start();
//Call sound=new Call(formed);
Log.d("Subject", result[i].getSubject() + "");
String content = null;
try {
content = result[i].getContent().toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("content", content + "");
}
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 1;
}
@Override
protected void onPostExecute(Integer result) {
// TODO Auto-generated method stub
}
}