相关疑难解决方法(0)

Android Camera:数据意图返回null

我有一个包含多个活动的android应用程序.

在其中一个我正在使用一个按钮,它将调用设备摄像头:

public void onClick(View view) {
    Intent photoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(photoIntent, IMAGE_CAPTURE);
}
Run Code Online (Sandbox Code Playgroud)

在同一个活动中,我调用OnActivityResult图像结果的方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == IMAGE_CAPTURE) {
        if (resultCode == RESULT_OK) {
            Bitmap image = (Bitmap) data.getExtras().get("data");
            ImageView imageview = (ImageView) findViewById(R.id.pic);
            imageview.setImageBitmap(image);
        } else if (resultCode == RESULT_CANCELED) {
            Toast.makeText(this, "CANCELED ", Toast.LENGTH_LONG).show();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是intent data是null并且OnActivityResult方法直接转到,(resultCode == RESULT_CANCELED)并且应用程序返回到先前的avtivity.

如何修复此问题,并在调用相机后,应用程序返回当前活动,其中包含ImageView将包含拍摄的照片?

谢谢

android android-camera android-imageview

128
推荐指数
5
解决办法
10万
查看次数

Android mkdir没有制作文件夹

今晚我正在做一些我认为很简单的事情......在/ mnt/sdcard中创建一个文件夹.

我已设置以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

Main.java有以下内容来制作文件夹:

public class Main extends TabActivity {
    static int index = 1;
    private static final String TAG = "Main";       

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        File folder = new File(Environment.getExternalStorageDirectory () + "/tallgrass/images");
        boolean success = false;
        if(!folder.exists()){
            success = folder.mkdir();
        }
        if (!success){ 
            Log.d(TAG,"Folder not created.");
        }
        else{
            Log.d(TAG,"Folder created!");
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到了"文件夹创建!" 我的日志中的消息,但当我检查两个/mnt/sdcard,/sdcard但没有一个文件夹.我试过打电话:

Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
Run Code Online (Sandbox Code Playgroud)

它返回true.我只是想不出这个,因为所有迹象都表明它应该有效.我已经尝试将手机与PC断开连接以防SD卡正在安装或者我正在使用手机而不是模拟器进行开发.说到这,不debuggabletrue可能防止它做的文件夹?

谢谢!

android mkdir

24
推荐指数
1
解决办法
3万
查看次数

拍摄照片时获取 - java.lang.Throwable:file://通过ClipData.Item.getUri()公开Uri

例外情况是:

file:// Uri exposed through ClipData.Item.getUri()
java.lang.Throwable: file:// Uri exposed through ClipData.Item.getUri()
    at android.os.StrictMode.onFileUriExposed(StrictMode.java:1618)
    at android.net.Uri.checkFileUriExposed(Uri.java:2341)
    at android.content.ClipData.prepareToLeaveProcess(ClipData.java:808)
    at android.content.Intent.prepareToLeaveProcess(Intent.java:7926)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1506)
    at android.app.Activity.startActivityForResult(Activity.java:3832)
    at android.app.Activity.startActivityForResult(Activity.java:3783)
    at android.support.v4.app.FragmentActivity.startActivityFromFragment(Unknown Source)
    at android.support.v4.app.Fragment.startActivityForResult(Unknown Source)
    at me.chunyu.ChunyuDoctor.Utility.w.takePhoto(Unknown Source)
    at me.chunyu.ChunyuDoctor.Dialog.ChoosePhotoDialogFragment.takePhoto(Unknown Source)
    at me.chunyu.ChunyuDoctor.Dialog.ChoosePhotoDialogFragment.access$000(Unknown Source)
    at me.chunyu.ChunyuDoctor.Dialog.b.onClick(Unknown Source)
    at me.chunyu.ChunyuDoctor.Dialog.ChoiceDialogFragment.onClick(Unknown Source)
    at android.view.View.performClick(View.java:4848)
    at android.view.View$PerformClick.run(View.java:20270)
    at android.os.Handler.handleCallback(Handler.java:815)
    at android.os.Handler.dispatchMessage(Handler.java:104)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5643)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Run Code Online (Sandbox Code Playgroud)

我的代码在这里:

public static void takePhoto(Fragment fragment, int token, Uri uri) {
    Intent …
Run Code Online (Sandbox Code Playgroud)

camera android uri image-capture mediastore

24
推荐指数
3
解决办法
2万
查看次数

从ACTION_IMAGE_CAPTURE Intent获取图像路径

嗨我ACTION_IMAGE_CAPTURE用于捕获图像使用Intent如下:

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(
MediaStore.EXTRA_OUTPUT, (new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + ".jpg"))
);
startActivityForResult(cameraIntent, 0);
Run Code Online (Sandbox Code Playgroud)

我需要将图像存储在SD卡中,并使用该onActivityResult方法检索该图像的路径.我不知道如何获取当前捕获图像的图像路径.

如果有人知道请帮助.

谢谢

camera android android-camera android-camera-intent

23
推荐指数
2
解决办法
4万
查看次数

拍照后获取onActivityResult中的图像Uri?

我有这个代码:

startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), CAMERA_IMAGE);
Run Code Online (Sandbox Code Playgroud)

这允许该用户拍照.现在我怎么能得到Uri那张照片onActivityResult?这是Intent额外的吗?通过了Intent.getData()吗?

java camera android uri image

22
推荐指数
2
解决办法
5万
查看次数

MediaStore.EXTRA_OUTPUT呈现数据为空,其他方式保存照片?

谷歌提供这个多功能的代码,通过意图拍摄照片:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // create Intent to take a picture and return control to the calling application
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name

    // start the image capture Intent
    startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)

问题在于,如果你像我一样想要将照片作为附加照片传递,那么EXTRA_OUTPUT看似使用照片数据并使后续操作认为意图数据为空.

看来这是Android的一个大错误.

我正在尝试拍摄照片,然后在新视图中将其显示为缩略图.我想将它保存为用户图库中的全尺寸图像.有没有人知道如何指定图像位置而不使用EXTRA_OUTPUT

这是我目前的情况:

public void takePhoto(View view) {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
//  takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, …
Run Code Online (Sandbox Code Playgroud)

java camera android android-intent

16
推荐指数
1
解决办法
4万
查看次数

将照片保存到文件时出现问题

伙计,当我发送要求拍摄照片的意图时,我仍然无法保存图片.这就是我在做的事情:

  1. 创建一个表示路径名的URI

    android.content.Context c = getApplicationContext(); 
    
    String fname = c.getFilesDir().getAbsolutePath()+"/parked.jpg";
    
    java.io.File file = new java.io.File( fname ); 
    
    Uri fileUri = Uri.fromFile(file);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建Intent(不要忘记pkg名称!)并启动活动

    private static int TAKE_PICTURE = 22;
    
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
    
    intent.putExtra("com.droidstogo.boom1." + MediaStore.EXTRA_OUTPUT, fileUri);
    startActivityForResult( intent, TAKE_PICTURE );
    
    Run Code Online (Sandbox Code Playgroud)
  3. 相机活动开始,我可以拍照,并批准它.我onActivityResult()被召唤了.但我的文件没有写.URI为:file:///data/data/com.droidstogo.boom1/files/parked.jpg

  4. 我可以创建缩略图OK(通过不将额外的内容放入Intent),并且可以将该文件写入OK,然后再将其读回来).

任何人都可以看到我犯的是什么简单的错误?在logcat中没有任何明显的东西 - 相机显然正在拍照.谢谢,

彼得


我应该提一下,我在AndroidManifest.xml文件中设置了相应的权限:

    <uses-permission android:name="android.permission.READ_OWNER_DATA" />
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-library android:name="com.google.android.maps" />



</application>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?关于要尝试的事情的任何想法,以获得有关该问题的更多信息?

camera android image file save

8
推荐指数
2
解决办法
2万
查看次数

某些设备中的Android自定义相机问题

嗨,我有一个自定义相机,我点击按钮,点击它捕获图像...一切都很好,但在某些设备预览是拉伸,预览覆盖屏幕的一半,闪烁...一些奇怪的不需要的影响.如何解决这个问题?

这是我的代码:

相机活动:

preview = new Preview(this, (SurfaceView) findViewById(R.id.surfaceView));

preview.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

((FrameLayout) findViewById(R.id.preview)).addView(preview);

preview.setKeepScreenOn(true);

buttonClick = (Button) findViewById(R.id.buttonClick);

buttonClick.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
        camera.takePicture(shutterCallback, rawCallback, jpegCallback);
        // camera.setDisplayOrientation(90);
        }
});
Run Code Online (Sandbox Code Playgroud)

预览课程:

class Preview extends ViewGroup implements SurfaceHolder.Callback {
    private final String TAG = "Preview";

    SurfaceView mSurfaceView;
    SurfaceHolder mHolder;
    Size mPreviewSize;
    List<Size> mSupportedPreviewSizes;
    Camera mCamera;

    @SuppressWarnings("deprecation")
    Preview(Context context, SurfaceView sv) {
        super(context);

        mSurfaceView = sv;
        // addView(mSurfaceView);

        mHolder = mSurfaceView.getHolder();
        mHolder.addCallback(this);
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    } …
Run Code Online (Sandbox Code Playgroud)

performance android android-camera

7
推荐指数
1
解决办法
1121
查看次数

Android 4.4.2 - 相机uri返回null并且裁剪功能不起作用?

我试图从相机中单击图像并显示到imageview但是onactivityresult URI返回null.BUt下面的代码在JellyBean上运行正常,ICS具有裁剪功能.

呼唤意图

                Intent pickIntent = new Intent();
                pickIntent.setType("image/*");
                pickIntent.setAction(Intent.ACTION_GET_CONTENT);
                pickIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                // we will handle the returned data in onActivityResult
                String pickTitle = "Select or take a new Picture";
                // startActivityForResult(captureIntent, 1);
                Intent chooserIntent = Intent.createChooser(pickIntent, pickTitle);
                chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]
                { captureIntent });
                startActivityForResult(chooserIntent, GlobalVariables.GALLERY_MODE);
Run Code Online (Sandbox Code Playgroud)

onActivityResult

@SuppressLint("NewApi")
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        try
        {
            if (resultCode == RESULT_OK)
            {
                // user …
Run Code Online (Sandbox Code Playgroud)

android android-gallery android-image android-camera android-4.4-kitkat

6
推荐指数
2
解决办法
8306
查看次数

当我使用ACTION_IMAGE_CAPTURE来拍照时,我得到一个NullPointerException

我有一个相当简单的应用程序,从菜单启动相机.相机发射很好,但是当我拍完照片后拍到OK时,我的nexus上有一个NPE:

E/AndroidRuntime( 3891): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=null} to activity {net.asplode.tr/net.asplode.tr.PostImage}: java.lang.NullPointerException
E/AndroidRuntime( 3891):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3515)
E/AndroidRuntime( 3891):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
E/AndroidRuntime( 3891):    at android.app.ActivityThread.access$2800(ActivityThread.java:125)
E/AndroidRuntime( 3891):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
E/AndroidRuntime( 3891):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 3891):    at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 3891):    at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 3891):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 3891):    at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 3891):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 3891):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 3891):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 3891): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 3891):    at net.asplode.tr.PostImage.onActivityResult(PostImage.java:92)
E/AndroidRuntime( 3891):    at android.app.Activity.dispatchActivityResult(Activity.java:3890)
E/AndroidRuntime( 3891): …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
1
解决办法
1万
查看次数