【问题标题】:Permission Denial: starting Intent sharing with gmailPermission Denial:开始使用 gmail 进行 Intent 共享
【发布时间】:2017-10-24 13:59:46
【问题描述】:

我尝试在我的应用中与 gmail 分享一些文本:

String shareBody = "bla bla bla";
Intent sharingIntent = new Intent(Intent.ACTION_VIEW);
sharingIntent.setType("plain/text");
sharingIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "bla bla bla");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(sharingIntent);

但是当我点击分享按钮时出现错误消息:

FATAL EXCEPTION: main
     Process: opteamit.com.belami, PID: 14263
     java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW typ=plain/text cmp=com.google.android.gm/.ComposeActivityGmail (has extras) } from ProcessRecord{f3970e9 14263:opteamit.com.belami/u0a170} (pid=14263, uid=10170) not exported from uid 10085
         at android.os.Parcel.readException(Parcel.java:1620)
         at android.os.Parcel.readException(Parcel.java:1573)
         at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3131)
         at android.app.Instrumentation.execStartActivity(Instrumentation.java:1541)
         at android.app.Activity.startActivityForResult(Activity.java:4298)
         at android.app.Activity.startActivityForResult(Activity.java:4245)
         at android.app.Activity.startActivity(Activity.java:4582)
         at android.app.Activity.startActivity(Activity.java:4550)
         at opteamit.com.belami.AideActivity$4$1.onSuccess(AideActivity.java:89)
         at com.loopj.android.http.JsonHttpResponseHandler$1$1.run(JsonHttpResponseHandler.java:152)
         at android.os.Handler.handleCallback(Handler.java:739)
         at android.os.Handler.dispatchMessage(Handler.java:95)
         at android.os.Looper.loop(Looper.java:148)
         at android.app.ActivityThread.main(ActivityThread.java:7325)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

我能做什么?

【问题讨论】:

    标签: android


    【解决方案1】:

    我能做什么?

    摆脱setClassName() 调用。

    首先,该活动未导出,因此您不能直接调用它。

    其次,过去、现在和未来版本的 Gmail 中可能不存在该活动。

    第三,并非每个 Android 用户都使用 Gmail。 Share where the user wants

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      • 2018-09-04
      相关资源
      最近更新 更多