0

私はAndroid開発が初めてです。私はギャラリーの画像とビデオに取り組んでいます。私はギャラリーから画像やビデオをアップロードします。私はカーソル値を返すNULLを得ました。一部のAndroid携帯でギャラリーから画像と動画をアップロードできません

まず

1)問題が発生しているのはなぜ際アップロード画像や動画?

2)このエラーを解決するにはどうすればよいですか?

私は、あなたは、Android 6.0を言及しているので、gallery`

OpenGallery.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       mode = "sms"; 
       gocodercamera.stopPreview(); 


       isCameraMenuVisible = false; 
       CameraMenu.setVisibility(View.GONE); 
       Intent galleryIntent = new Intent(/*Intent.ACTION_GET_CONTENT*/Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
       galleryIntent.setType("image/* video/*"); 
       startActivityForResult(galleryIntent, 300); 
      } 
     }); 
` 

OnActivityResult`

 /**Picking file from Gallery*/ 
     if (requestCode == 300) { 

      if (resultCode == RESULT_OK) { 

       try { 

        gocodercamera.setVisibility(View.VISIBLE); 
        gocodercamera.startPreview(); 
        if (data != null) { 

         Uri selectedImage = data.getData(); 

         String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
         Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
         cursor.moveToFirst(); 
         int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
         String filepath = cursor.getString(columnIndex); 
         cursor.close(); 


         if (filepath.endsWith(".jpg") || filepath.endsWith(".jpe") || filepath.endsWith(".jpeg") || filepath.endsWith(".png")) { 

          imagefilepath = filepath; 
//       uriList.add(imagefilepath); 
//       typesList.add("image"); 

          Uri getCompressedUriPath = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); 
          String getCompressedPath = compressImage(filepath, getCompressedUriPath); 
          if (aDetector.isConnectingToInternet()) { 
           sendMediaUpload(getCompressedPath, "image"); 
          } else { 
           Toast.makeText(getApplicationContext(), "Please check your internet connection", Toast.LENGTH_LONG).show(); 
          } 


//       ImageAdapterList myAdapter = new ImageAdapterList(); 
//       listview.setAdapter(myAdapter); 

         } else { 

          Cursor cursor1 = MediaStore.Video.query(getContentResolver(), selectedImage, new String[]{MediaStore.Video.VideoColumns.DURATION}); 
          cursor1.moveToFirst(); 
          String dur = cursor1.getString(cursor1.getColumnIndex("duration")); 
          int duration = Integer.parseInt(dur); 

          duration = duration/1000; 

          Log.e("dur", "dur : " + dur); 
          Log.e("duration", "duration : " + duration); 


          videofilepath = filepath; 
          imagefilepath = videofilepath; 
          sendMediaUpload(imagefilepath, "video"); 


//        ImageAdapterList myAdapter = new ImageAdapterList(); 
//        listview.setAdapter(myAdapter); 


         } 
        } else { 
//      Toast.makeText(getApplicationContext(),"Sorry! Failed to select File from gallery", Toast.LENGTH_SHORT).show(); 
        } 

       } catch (NullPointerException e) { 
        e.printStackTrace(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } else if (resultCode == RESULT_CANCELED) { 

       gocodercamera.setVisibility(View.VISIBLE); 
       gocodercamera.startPreview(); 
//    Toast.makeText(getApplicationContext(),"User cancelled to select File", Toast.LENGTH_SHORT).show(); 
      } else { 

       gocodercamera.setVisibility(View.VISIBLE); 
       gocodercamera.startPreview(); 
//    Toast.makeText(getApplicationContext(),"Sorry! Failed to select File", Toast.LENGTH_SHORT).show(); 
      } 
     }` 

答えて

0

からアップロードした画像や動画に使用されるあなたは読み書きに与えられた権限を持っている場合だけでチェックあなたがそれを試す前にディスクストレージ。マシュマロから始まって、Androidのは、私がマニフェストファイルに許可を述べたあなたは、ランタイム

https://developer.android.com/training/permissions/requesting.html

+0

でそれを提供しない限り、デフォルトではAndroidのマニフェストで提供権限のほとんどは、実際に動作しないことを意味するランタイム権限を開始しました。私は目標のSDNを設定しました22。 –

関連する問題