标签: android-gallery

Android READ_EXTERNAL_STORAGE权限无效

我正在尝试创建一个简单的应用程序,可以从Gallery应用程序获取图像并将其显示在imageButton上.我在运行Android 5.0.1的手机上使用API​​ 21进行测试.不幸的是,无论我尝试什么,我都会遇到安全错误 - 即使我指定了权限.

我获取图像的代码是:

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

    switch(requestCode){
        case PICK_IMAGE_REQUEST:
            if(resultCode == RESULT_OK && imageReturnedIntent != null && imageReturnedIntent.getData() != null) {
                Uri uri = imageReturnedIntent.getData();
                try {
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                    // Log.d(TAG, String.valueOf(bitmap));
                    ImageButton ib = (ImageButton) findViewById(R.id.inputImg);
                    ib.setImageBitmap(bitmap);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试从Dropbox中选择图像时代码有效,但是当我从图库中选择图像时,我得到了

java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/35634 from pid=25240, uid=10070 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
Run Code Online (Sandbox Code Playgroud)

我为READ_EXTERNAL_STORAGE制作了一个使用权限标记: …

java android android-gallery android-permissions android-5.0-lollipop

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

从相机和图库上传在所有版本中都无法正常工作

我正在尝试从教程或相机中获取图像的教程和示例代码的数量,然后裁剪图像并将其上传到服务器.我在那个代码中实现了代码,我面临的问题很少.

  1. 在使用照片应用程序裁剪图像时,在Lollipop设备中,图像不会在图像视图中反映出来,但它会在图像保存时显示消息.
  2. 在nexus手机中,相机和图库都无法使用.
  3. 当我裁剪图像时,在几个设备中的5.0版本获得如下所示的图像 图片

下面是我的代码片段

public void getPhoto() {

        final String[] items = new String[] { "Take from camera",
                "Select from gallery" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.select_dialog_item, items);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        builder.setTitle("Select Image");
        builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) { // pick from
                                                                    // camera
                if (item == 0) {
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    intent.putExtra(
                            "android.intent.extras.CAMERA_FACING",
                            android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);
                    mImageCaptureUri = Uri.fromFile(new File(Environment
                            .getExternalStorageDirectory(), "tmp_avatar_"
                            + String.valueOf(System.currentTimeMillis())
                            + ".jpg"));

                    intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
                            mImageCaptureUri);

                    try { …
Run Code Online (Sandbox Code Playgroud)

android image-uploading android-gallery android-camera android-camera-intent

12
推荐指数
1
解决办法
1130
查看次数

如何从Android 7.0中的相机或图库中选择裁剪图像?

从图库和相机中选择裁剪图像在Android 7.0以下完成,但在Android Naught中它在相机中崩溃.我使用fileprovider但不起作用.

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button mBtn;
private Context context;
private static final int SELECT_PICTURE_CAMARA = 101, SELECT_PICTURE = 201, CROP_IMAGE = 301;
private Uri outputFileUri;
String mCurrentPhotoPath;
private Uri selectedImageUri;
private File finalFile = null;
private ImageView imageView;
private PermissionUtil permissionUtil;
Uri fileUri;
File file = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mBtn = (Button) findViewById(R.id.btn_img);
    imageView = (ImageView) findViewById(R.id.img_photo);
    permissionUtil = new PermissionUtil();
    mBtn.setOnClickListener(this);
    context = this; …
Run Code Online (Sandbox Code Playgroud)

android android-gallery android-7.0-nougat

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

Android:此警告消息引用了什么? - (WebCore)

我有一个包含WebView作为其子项的Gallery,当我滚动Gallery时,我收到以下警告,

'04-07 19:35:37.409: WARN/webcore(664): Can't get the viewWidth after the first layout
 04-07 19:35:37.470: WARN/webcore(664): skip viewSizeChanged as w is 0'
Run Code Online (Sandbox Code Playgroud)

这个警告是指什么?[我没有硬编码任何布局参数.]

任何关于为什么发生此警告的指示都会非常有用......

这些也被打印出来了

04-15 11:10:13.202: DEBUG/webviewglue(617): nativeDestroy view: 0x257f40
04-15 11:10:13.243: DEBUG/webviewglue(617): nativeDestroy view: 0x25d680
04-15 11:10:13.292: DEBUG/webviewglue(617): nativeDestroy view: 0x240688
04-15 11:10:13.332: DEBUG/webviewglue(617): nativeDestroy view: 0x249918
04-15 11:10:13.373: DEBUG/webviewglue(617): nativeDestroy view: 0x226608
04-15 11:10:13.423: DEBUG/webviewglue(617): nativeDestroy view: 0x21e418
04-15 11:10:13.482: DEBUG/webviewglue(617): nativeDestroy view: 0x23a4e8
04-15 11:10:13.533: DEBUG/webviewglue(617): nativeDestroy view: 0x235c68
04-15 11:10:13.572: DEBUG/webviewglue(617): nativeDestroy view: 0x212a28
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android android-gallery android-webview

11
推荐指数
1
解决办法
8536
查看次数

onActivityResult()没有在DialogFragment中执行

我一直在寻找千篇文章,但我找不到如何解决我的问题.

我有一个ImageView.当用户单击此ImageView时,将显示DialogFragment,用户可以选择在相机上拍摄新照片,也可以从库中选择照片.直到这里一切正常.

问题是,用户选择的图片应该替换ImageView中的当前图片,但是这个位是不起作用的,因为执行此代码的onActivityResult()函数没有被执行,所以ImageView中的图像始终保持不变.我会感激任何帮助,因为我没有看到或理解,为什么这个代码没有被执行.

我在用户选择图像后立即在LogCat中收到警告:

05-07 12:17:11.542: I/ActivityManager(59): Displayed activity com.android.gallery/com.android.camera.ImageGallery: 935 ms (total 935 ms)

05-07 12:17:12.812: W/FragmentActivity(3614): Activity result no fragment exists for index: 0x10001

05-07 12:17:12.862: W/InputManagerService(59): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@45fd9c38 (uid=10016 pid=317)
Run Code Online (Sandbox Code Playgroud)

Activity.java:

private ImageView imageLoader = null;
imageLoader = (ImageView) findViewById(R.id.f_imageLoader);        
imageLoader.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        ImageLoaderDialog imageLoaderDialog = new ImageLoaderDialog(imageLoader);
        imageLoaderDialog.show(getSupportFragmentManager(), "imageLoaderDialog");
}
Run Code Online (Sandbox Code Playgroud)

Activity.xml:

<ImageView
    android:id="@+id/f_imageLoader"
android:layout_width="wrap_content"
    android:layout_height="0dip"
    android:layout_weight="0.20"
android:contentDescription="@string/imgDesc"
    android:src="@drawable/my_image" />
Run Code Online (Sandbox Code Playgroud)

ImageLoaderDialog.java:

//Dialog for choosing between new camera image …
Run Code Online (Sandbox Code Playgroud)

android-gallery android-camera android-imageview android-dialogfragment

11
推荐指数
1
解决办法
1801
查看次数

如何在android gallery中创建应用程序特定的文件夹?

我正在构建Android应用程序" XYZ ",用户将在其中存储图像和视频等媒体.因此,我想在Android库中创建一个名为"XYZ"的文件夹,并将所有特定于该应用程序的媒体存储在"XYZ"中.我该如何实现?

目前,我能够将媒体存储在SD卡上并扫描媒体文件,它们显示在android图库的"images"文件夹中.

android android-gallery

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

使用"com.android.camera.action.TRIM"进行视频修剪(Gallery2包)

我需要通过Video实现修剪操作.我正在使用代码,它在Gallery2软件包安装的手机上完美运行.但它没有返回onActivityResult(如果攻击成功,意图不会返回任何结果).

码:

Intent trimVideoIntent = new Intent("com.android.camera.action.TRIM");

            // The key for the extra has been discovered from com.android.gallery3d.app.PhotoPage.KEY_MEDIA_ITEM_PATH
            trimVideoIntent.putExtra("media-item-path", FilePath);
            trimVideoIntent.setData(videoUri);

            // Check if the device can handle the Intent
            List<ResolveInfo> list = getPackageManager().queryIntentActivities(trimVideoIntent, 0);
            if (null != list && list.size() > 0) {
                startActivityForResult(trimVideoIntent,2); // Fires TrimVideo activity into being active
            }else {
                Toast.makeText(this, "Video trimming not supported", 1).show();
            }
Run Code Online (Sandbox Code Playgroud)

有没有办法在修剪和返回结果后关闭gallery2?

video android android-gallery

11
推荐指数
0
解决办法
1262
查看次数

如何在Android中将exif数据写入图像?

我正在尝试使用exif界面在Android应用程序中编写User_CommentTAG_GPS捕获的图像,但由于某种原因,当我在图库中查看图像的详细信息时,标签似乎没有附加到图像上.

似乎可能没有将标签写入捕获的图像,因为文件路径可能是错误的.我想这可能是因为我将标签写入了错误的图像路径.

有没有人知道我的标签写入图像的方式是否有问题?

这是在@ Charlie的更改后保存exif数据的代码:

private File getOutputPhotoFile() throws IOException {
          File directory = new File(Environment.getExternalStoragePublicDirectory(
                        Environment.DIRECTORY_PICTURES), getPackageName());
          if (!directory.exists()) {
            if (!directory.mkdirs()) {
              Log.e(TAG, "Failed to create storage directory.");
              return null;
            }
          }


          String timeStamp = new SimpleDateFormat("yyyMMdd_HHmmss", Locale.ENGLISH).format(new Date());

          File[] files = directory.listFiles();

          File exifVar =  new File(directory.getPath(), "IMG_" + timeStamp + ".jpg");
          if(files.length!=0) {
              File newestFile = files[files.length-1];
              exifVar =  new File(directory.getPath() + File.separator + newestFile.getName());
          }

          String mString = "Generic Text..";     
          ExifInterface …
Run Code Online (Sandbox Code Playgroud)

java android exif android-gallery android-camera-intent

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

Android:.nomedia被忽略,图片仍然出现在图库中

我正在构建一个从Web下载图像并将它们存储到我的SD卡中的应用程序,为了使它们在库中不可见,我将这一行生成一个.nomedia文件:

FileWriter f = new FileWriter("/sdcard/Android/data/CopyImage/cache/.nomedia");
Run Code Online (Sandbox Code Playgroud)

应用程序可以成功下载图像并将.nodata文件放在同一个文件夹中,但事实是,图像仍然出现在图库中.

怎么会这样?任何人都可以为我提供解决方案吗?

非常感谢你

android android-sdcard android-gallery

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

来自Android 6(Marshmallow)的Gallery中的图片

在我的应用程序中,我试图从厨房中选择图像,以便将该图像传递给服务器.

代码在Android 5及更低版本上正常运行,但对于Nexus 5上的Android 6,我无法获取图像信息.记录我得到的痕迹

注意:Android 5及以下版本的代码运行正常

11-06 12:27:43.736: W/System.err(31678): java.lang.SecurityException: Permission Denial: reading com.google.android.apps.photos.contentprovider.MediaContentProvider uri content://com.google.android.apps.photos.contentprovider/0/1/content%3A//media/external/images/media/19138/ACTUAL/94710853 from pid=31678, uid=10111 requires the provider be exported, or grantUriPermission()
11-06 12:27:43.757: W/System.err(31678): 
at android.os.Parcel.readException(Parcel.java:1599)
11-06 12:27:43.757: W/System.err(31678): 
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
11-06 12:27:43.757: W/System.err(31678): 
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
11-06 12:27:43.757: W/System.err(31678): 
at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
11-06 12:27:43.757: W/System.err(31678): 
at android.content.ContentResolver.query(ContentResolver.java:491)
11-06 12:27:43.757: W/System.err(31678): 
at android.content.ContentResolver.query(ContentResolver.java:434)
11-06 12:27:43.758: W/System.err(31678): 
at org.apache.cordova.file.ContentFilesystem.openCursorForURL(ContentFilesystem.java:258)
11-06 12:27:43.758: W/System.err(31678): 
at org.apache.cordova.file.ContentFilesystem.getFileMetadataForLocalURL(ContentFilesystem.java:169)
11-06 12:27:43.758: W/System.err(31678): 
at org.apache.cordova.file.FileUtils.getFileMetadata(FileUtils.java:822)
11-06 12:27:43.758: W/System.err(31678): 
at org.apache.cordova.file.FileUtils.access$500(FileUtils.java:52)
11-06 …
Run Code Online (Sandbox Code Playgroud)

android android-gallery android-6.0-marshmallow

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