1

我正在实现一个彩信应用程序,我也在使用相机。主应用程序的主题是使用设备相机拍摄照片,将图像作为彩信发送到指定的数字。但是在附加图像时,我收到错误警告,如

无法附加文件不支持

请帮助解决我的问题。

谢谢,

public class MMS extends Activity implements OnClickListener {
int TAKE_PHOTO_CODE = 0;
public static int count=0;
EditText preLoc,comeby;
Button ok,capture;
String photo;
String dir;

boolean GPS,flag;
String cityName=null; 
String SubThorugh = null;
Intent i;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mms);

    preLoc = (EditText)findViewById(R.id.etPreLoc1);
    comeby = (EditText)findViewById(R.id.etComing1);
    ok = (Button)findViewById(R.id.bOK1);
    capture = (Button) findViewById(R.id.btnCapture);
    capture.setOnClickListener(this);
    ok.setOnClickListener(this);
    i = getIntent();
    GPS = i.getBooleanExtra("GPSneed", false);

    ok.setOnClickListener(this);

}
@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    switch(arg0.getId())
    {
    case R.id.btnCapture:
        capturePicture();
        break;
    case R.id.bOK1:
        sendMMS();
        preLoc.setText(cityName+SubThorugh);
        break;
    }
}

private void sendMMS() {
    // TODO Auto-generated method stub
    try {
        Uri uri = Uri.parse(photo);

        Intent i = new Intent(Intent.ACTION_SEND);
        //i.putExtra("address",etnum.getText().toString());
        //i.putExtra("sms_body",etmsg.getText().toString());
        i.putExtra(Intent.EXTRA_STREAM,uri);
        i.setType("image/*");
        startActivity(i);
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }



}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
        Log.d("CameraDemo", "Pic saved");
        Toast.makeText(getApplicationContext(), "photo saved as: "+photo, Toast.LENGTH_LONG).show();
    }
}
private void capturePicture() {

    //here,we are making a folder named picFolder to store pics taken by the camera using this application
    final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/picFolder/"; 
    File newdir = new File(dir); 
    newdir.mkdirs();
 // here,counter will be incremented each time,and the picture taken by camera will be stored as 1.jpg,2.jpg and likewise.
    count++;
    String file = dir+count+".jpg";
    photo = file;
    File newfile = new File(file);
    try {
        newfile.createNewFile();
    } catch (IOException e) {}       

    Uri outputFileUri = Uri.fromFile(newfile);

    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

    startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);

}
4

0 回答 0