如何在Android手机中自动发送mms或sms捕获照片? 0

时间:2014-07-11 15:11:17

标签: android

我创建了自己的相机应用程序。当我点击按钮时,它会拍摄照片并将其保存在小册子中。我想做的是拍照发送自动短信或mms。请帮帮我怎么做。我的代码在这里:

public class SimpleCameraIntentFragment extends Activity {

    private Camera mCamera;
    private CameraPreview mPreview;
    public static final int MEDIA_TYPE_IMAGE = 1;
    ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView=(ImageView)findViewById(R.id.imageView1);

        Button captureButton = (Button) findViewById(R.id.button_capture);
        System.out.println("Starting!");



        // Create an instance of Camera
        mCamera = getCameraInstance();
        // Create our Preview view and set it as the content of our activity.
        mPreview = new CameraPreview(this, mCamera);
        FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
        preview.addView(mPreview);


        final PictureCallback mPicture = new PictureCallback() {

            public void onPictureTaken(byte[] data, Camera camera) {

                File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);


                if (pictureFile == null) {
                    return;
                }

                try {
                    FileOutputStream fos = new FileOutputStream(pictureFile);
                    fos.write(data);
                    fos.close();
                    MediaStore.Images.Media.insertImage(getContentResolver(),
                            pictureFile.getAbsolutePath(),
                            pictureFile.getName(), pictureFile.getName());
                } catch (FileNotFoundException e) {

                } catch (IOException e) {

                }
            }
        };

        captureButton.setOnClickListener(

                new View.OnClickListener() {

                    public void onClick(View v) {
                        // get an image from the camera

                        final Timer t = new Timer();
                        t.schedule(new TimerTask() {
                            @Override
                            public void run() {
                                mCamera.takePicture(null, null, mPicture);
                                t.cancel();

                                //imageView.set
                            }
                        }, 5000);

                    }
                });

    }

    /** A safe way to get an instance of the Camera object. */
    public static Camera getCameraInstance() {
        Camera c = null;
        try {
            c = Camera.open(); // attempt to get a Camera instance
        } catch (Exception e) {
            // Camera is not available (in use or does not exist)
        }
        return c; // returns null if camera is unavailable
    }

    @Override
    protected void onPause() {
        super.onPause();
        releaseCamera(); // release the camera immediately on pause event
    }

    private void releaseCamera() {
        if (mCamera != null) {
            mCamera.release(); // release the camera for other applications
            mCamera = null;
        }
    }

    /** Create a File for saving an image or video */
    private File getOutputMediaFile(int type) {
        // To be safe, you should check that the SDCard is mounted
        // using Environment.getExternalStorageState() before doing this.

        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                "MyCameraApp");

        // This location works best if you want the created images to be shared
        // between applications and persist after your app has been uninstalled.

        // Create the storage directory if it does not exist
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                return null;
            }
        }

        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
                .format(new Date());
        File mediaFile;
        if (type == MEDIA_TYPE_IMAGE) {
            mediaFile = new File(mediaStorageDir.getPath() + File.separator
                    + "IMG_" + timeStamp + ".jpg");
        } else {
            return null;
        }

        return mediaFile;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以在此处查看一些教程:http://www.mkyong.com/android/how-to-send-sms-message-in-android/。 但我不认为用户会喜欢自动发送短信或彩信的应用程序。

代码看起来像那样:

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendDataMessage(....;