Wiem, że nie jest to najlepsza praktyka, ale chcę z niej skorzystaćthr Uwaga Do siebie zamierza wysłać wiadomość e-mail w tle. Znalazłem zamiar AUTO_SEND, z którego korzysta Keep, ale nie mogę otworzyć Gmaila ani zachować go przy sobie - nie pokazują się w selektorze aktywności, robią to tylko Evermore i Notif.
Oto, czego obecnie próbuję:
Intent mailClient = new Intent("com.google.android.gm.action.AUTO_SEND");
mailClient.setClassName("com.google.android.gm", "com.google.android.gm.AutoSendActivity");
startActivity(mailClient);
Nadal jednak pojawia się błąd -
04-12 15:06:28.393: W/ActivityManager(443): Permission Denial: starting Intent { act=com.google.android.gm.action.AUTO_SEND cmp=com.google.android.gm/.AutoSendActivity } from ProcessRecord{41adee50 11298:com.email_to_self/u0a10113} (pid=11298, uid=10113) requires com.google.android.gm.permission.AUTO_SEND
W ten sposób dodałem pozwolenie do mojego manifestu
<uses-permission android:name="com.google.android.gm.permission.AUTO_SEND">
Ale problem utrzymuje się. Jakieś pomysły?
Odpowiedzi:
0 dla odpowiedzi № 1Nie możesz.
To działanie jest obsługiwane przez to działanie i wymaga pozwolenia com.google.android.gm.permission.AUTO_SEND
<activity android:name="com.google.android.gm.AutoSendActivity"
...
android:permission="com.google.android.gm.permission.AUTO_SEND">
<intent-filter android:label="@string/app_name">
<action android:name="com.google.android.gm.action.AUTO_SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
To uprawnienie jest zdefiniowane w manifeście Gmaila i jest ograniczone do aplikacji Google (lub dokładniej podpisane tym samym kluczem co Gmail).
<permission android:name="com.google.android.gm.permission.AUTO_SEND"
android:permissionGroup="android.permission-group.MESSAGES"
android:protectionLevel="signature" android:label="@string/auto_send_perm_label"
android:description="@string/auto_send_perm_desc"/>