2017-03-15 19 views
0

を処理できませんでした。私はthis solutionを使用していますが、下記のエラーコードが表示され、何も起こりません。私はその何かがウリにはうってつけだと思いますが、私は解決策を見つけることはできません。誰にもこれを解決する方法がありますか?私は「私の」コードも含めました。Androidは特定のフォルダから画像/動画でギャラリーを開こうとしているので、インテントMediaScanner

03-15 16:30:53.733 21902-22775/de.comidos.fotoapp D/onScanCompleted: Scan completed: content://media/external/images/media/1730 
 
03-15 16:30:53.752 21902-22775/de.comidos.fotoapp D/Instrumentation: checkStartActivityResult() : Intent { act=android.intent.action.VIEW dat=content://media/external/images/media/1730 launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } } 
 
03-15 16:30:53.773 21902-22775/de.comidos.fotoapp W/Binder: Binder call failed. 
 
                  android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://media/external/images/media/1730 launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } } 
 
                   at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1839) 
 
                   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1531) 
 
                   at android.app.Activity.startActivityForResult(Activity.java:4389) 
 
                   at android.app.Activity.startActivityForResult(Activity.java:4348) 
 
                   at android.app.Activity.startActivity(Activity.java:4672) 
 
                   at android.app.Activity.startActivity(Activity.java:4640) 
 
                   at de.comidos.fotoapp.GalleryViewActivity.onScanCompleted(GalleryViewActivity.java:59) 
 
                   at android.media.MediaScannerConnection$1.scanCompleted(MediaScannerConnection.java:55) 
 
                   at android.media.IMediaScannerListener$Stub.onTransact(IMediaScannerListener.java:60) 
 
                   at android.os.Binder.execTransact(Binder.java:573)

package de.comidos.fotoapp; 
 
import android.app.Activity; 
 
import android.content.Intent; 
 
import android.media.MediaScannerConnection; 
 
import android.net.Uri; 
 
import android.os.Bundle; 
 
import android.os.Environment; 
 
import android.util.Log; 
 
import java.io.File; 
 

 

 
public class GalleryViewActivity extends Activity implements MediaScannerConnection.MediaScannerConnectionClient { 
 
    public String[] allFiles; 
 
    private String SCAN_PATH ; 
 
    private static final String FILE_TYPE = "*/*"; 
 

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

 
     File folder = new File(Environment.getExternalStorageDirectory().toString()+"/comidos/sent/"); 
 
     allFiles = folder.list(); 
 
     // uriAllFiles= new Uri[allFiles.length]; 
 
     for(int i=0;i<allFiles.length;i++) 
 
     { 
 
      Log.d("all file path"+i, allFiles[i]+allFiles.length); 
 
     } 
 
     // Uri uri= Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString()+"/yourfoldername/"+allFiles[0])); 
 
     SCAN_PATH= Environment.getExternalStorageDirectory().toString()+"/comidos/sent/"+allFiles[0]; 
 
     Log.d("SCAN PATH", "Scan Path " + SCAN_PATH); 
 

 
    } 
 
    private void startScan() 
 
    { 
 
     Log.d("Connected","success"+conn); 
 
     if(conn!=null) 
 
     { 
 
      conn.disconnect(); 
 
     } 
 
     conn = new MediaScannerConnection(this,this); 
 
     conn.connect(); 
 
    } 
 
    @Override 
 
    public void onMediaScannerConnected() { 
 
     Log.d("onMediaScannerConnected","success"+conn); 
 
     conn.scanFile(SCAN_PATH, FILE_TYPE); 
 
    } 
 
    @Override 
 
    public void onScanCompleted(String path, Uri uri) { 
 
     try { 
 
      Log.d("onScanCompleted","Scan completed: "+uri); 
 
      if (uri != null) 
 
      { 
 
       Intent intent = new Intent(Intent.ACTION_VIEW); 
 
       intent.setData(uri); 
 
       startActivity(intent); 
 
      } 
 
     } finally 
 
     { 
 
      conn.disconnect(); 
 
      conn = null; 
 
     } 
 
    } 
 
    @Override 
 
    public void onResume(){ 
 
     super.onResume(); 
 
     startScan(); 
 

 
    } 
 
}

答えて

0

コンテンツがあることをどんなMIMEタイプのためcontentUriACTION_VIEWをサポートし、あなたのデバイス上のアクティビティはありません。 Android搭載端末がコンテンツの可能性があるすべてのコンテンツに対してACTION_VIEWのアクティビティを持つ必要はありません。

+0

これが問題ですか?もし私がこのコードで一つだけを開くとすれば:String path = "/storage/emulated/0/comidos/sent/ANFRAGE_4006209501061_357330077957793_2017-03-14-09-07-43-47_001.jpg"; インテントi =新しいインテント(); i.setAction(Intent.ACTION_VIEW);i.setDataAndType(Uri.fromFile(新しいファイル(パス))、 "image/*"); startActivity(i);それは動作します – TBrauwers

+0

@TBrauwers: "これはここで問題が本当ですか?" - それは例外があなたに言っていることです。 "もし私がこのコードでただ一つを開いていれば" - Intentは、ファイルとして 'content'をサポートしています。 – CommonsWare

+0

さて、あなたの権利があると思います...私の問題(特定のフォルダを持つギャラリーを開く)についての解決方法を知っていますか?ImageAdapterとGridビューで既に試しましたが、これは私のS7でもスローです... – TBrauwers

関連する問題