2016-11-29 2 views
1

Ich habe versucht, einen Text mit gmail in meiner App zu teilen:Permission Denial: Start Intent-Sharing mit 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); 

Aber ich habe die Fehlermeldung, wenn ich auf der Share-Taste klicken:

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) 

Was kann ich tun?

Antwort

0

Was kann ich tun?

Befreien Sie sich von der setClassName() Anruf.

Zuerst wird diese Aktivität nicht exportiert, sodass Sie sie nicht direkt aufrufen können.

Zweitens ist diese Aktivität in früheren, aktuellen und zukünftigen Ausgaben von Gmail möglicherweise nicht vorhanden.

Drittens verwendet nicht jeder Android-Nutzer Gmail. Share where the user wants.

Verwandte Themen