前提・実現したいこと
Android Studioを使い始めて3か月の初心者です。
現在、intentを使い、https://~のウェブページをブラウザで表示することができました。
今回実現したいこととしては、ブラウザからftpサーバにアクセスしたいということです。具体的には、ftp://ipaddress/~をintentに渡すことで、ブラウザからftpサーバにアクセスしたいです。
ftpサーバは、Windowsの標準機能のIISを使い、自分のパソコンをサーバとして利用できるようにしました。android端末からchromeアプリを使い、ftp://ipaddress/と入力すると、ftpサーバにアクセスすることができています。しかし、android studioから同じことを実現しようとするとエラーが出てしまいます。
発生している問題・エラーメッセージ
/com.example.user.webftp E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.user.webftp, PID: 8294 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.webftp/com.example.user.webftp.MainActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=ftp://ipaddress/... } at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=ftp://192.168.0.12/... } at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1937) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616) at android.app.Activity.startActivityForResult(Activity.java:4487) at android.app.Activity.startActivityForResult(Activity.java:4445) at android.app.Activity.startActivity(Activity.java:4806) at android.app.Activity.startActivity(Activity.java:4774) at com.example.keita.webftp.MainActivity.onCreate(MainActivity.java:21) at android.app.Activity.performCreate(Activity.java:7009) at android.app.Activity.performCreate(Activity.java:7000) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
該当のソースコード
Java
1 2public class MainActivity extends Activity { 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.activity_main); 8 Uri uri = Uri.parse("ftp://ipaddress/"); 9 //Uri uri = Uri.parse("ftp://user:passwd@ipaddress/Book1.xlsx"); 10 //Uri uri = Uri.parse("https://www.google.co.jp/"); 11 12 Intent i = new Intent(Intent.ACTION_VIEW,uri); 13 startActivity(i); 14 } 15}
試したこと
android端末でchromeアプリを使い、ftp://ipaddress/と入力することで、ftpサーバに接続できることを確認した。
インターネットのほかにもpermissionが必要なのかと思い調べたが、わからなかった。
ヒントになるソースコードを探したが見つからなかった。
補足情報(FW/ツールのバージョンなど)
開発環境はAndroid Studio3.1.4を使用しています。
言語はJavaを使用しています。
パソコンはWindows10のものを使用しています。
Android Nexus5Xの実機を使い実行しています。
回答1件
あなたの回答
tips
プレビュー