2

I trying to send URL with file to web activity with:

public static void startDownloadFileActivity(com.app.model.File file, String link) {
    Uri uri = Uri.parse(link);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    String mime = "*/*";
    MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
    if (mimeTypeMap.hasMimeType(file.getMimeType())) {
        mime = file.getMimeType();
    } else if (mimeTypeMap.hasExtension(MimeTypeMap.getFileExtensionFromUrl(file.getTitle()))) {
        mime = mimeTypeMap.getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(file.getTitle()));
    }
    intent.setDataAndType(uri, mime);
    try {
        SDApplication.getInstance().getCurrentActivity().startActivity(intent);
    } catch (ActivityNotFoundException e) {
        Logger.logException(ERROR_TAG, "Can't find activity for mime " + mime + "\nReason:" + e.getMessage(), e);
        ToastUtils.showToast(getContext().getString(R.string.error_no_app_for_mime));
    }
}

But when send intent to web browser get this:

Fatal Exception: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW dat=http://some-stand.com:10012/... typ=*/* cmp=com.google.android.apps.docs/.doclist.documentopener.WebViewOpenActivity } from ProcessRecord{4138e78 8118:com.app/u0a322} (pid=8118, uid=10322) not exported from uid 10123
   at android.os.Parcel.readException(Parcel.java:1627)
   at android.os.Parcel.readException(Parcel.java:1579)
   at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2671)
   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1509)
   at android.app.Activity.startActivityForResult(Activity.java:3963)
   at android.app.Activity.startActivityForResult(Activity.java:3924)
   at android.support.v4.app.FragmentActivity.startActivityForResult(SourceFile:820)
   at android.app.Activity.startActivity(Activity.java:4247)
   at android.app.Activity.startActivity(Activity.java:4215)
   at com.app.utils.FileUtils.startDownloadFileActivity(SourceFile:185)
   at com.app.activities.FilesActivity$1.onItemClick(SourceFile:157)
   at android.widget.AdapterView.performItemClick(AdapterView.java:310)
   at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
   at android.widget.AbsListView$PerformClick.run(AbsListView.java:3066)
   at android.widget.AbsListView$3.run(AbsListView.java:3903)
   at android.os.Handler.handleCallback(Handler.java:739)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:224)
   at android.app.ActivityThread.main(ActivityThread.java:5526)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

I don't understand what permission need application to open URL. And error is produced by only one device: Sony Xperia. Application has Internet permission in AndroidManifest file.

Andrey Chernoprudov
  • 1,209
  • 11
  • 13

1 Answers1

1

Check permission in your AndroidManifest.xml.

android.permission.INTERNET