2014-11-05 2 views
5

Android의 Kivy 앱에서 Python을 사용하여 이메일을 보내려면 몇 가지 방법을 시도해 봤습니다. 필자가 가장 가까이 온 것은 Plyer의 이메일 기능 (https://plyer.readthedocs.org/en/latest/#plyer.facades.Email)이지만 첨부 파일을 지원하는 것으로 보이지 않습니다.Android의 Kivy 앱에서 첨부 파일이있는 이메일을 보내십시오. 가능하면 이메일 클라이언트를 엽니 다.

내 앱에서 사용자의 이메일 클라이언트를 열고받는 사람, 제목, 본문 및 첨부 파일 필드를 채우는 것이 좋겠다. 첨부 파일은 내 응용 프로그램에서 생성하는 .csv 파일입니다.

누구든지이 작업을 수행하는 방법에 대한 제안이 있습니까? 첨부 파일을 포함하도록이 코드를 어떻게 수정할 수 있습니까?

from jnius import autoclass, cast 
from plyer.facades import Email 
from plyer.platforms.android import activity 

Intent = autoclass('android.content.Intent') 
AndroidString = autoclass('java.lang.String') 


class AndroidEmail(Email): 
    def _send(self, **kwargs): 
    intent = Intent(Intent.ACTION_SEND) 
    intent.setType('text/plain') 

    recipient = kwargs.get('recipient') 
    subject = kwargs.get('subject') 
    text = kwargs.get('text') 
    create_chooser = kwargs.get('create_chooser') 

    if recipient: 
     intent.putExtra(Intent.EXTRA_EMAIL, [recipient]) 
    if subject: 
     android_subject = cast('java.lang.CharSequence', 
           AndroidString(subject)) 
     intent.putExtra(Intent.EXTRA_SUBJECT, android_subject) 
    if text: 
     android_text = cast('java.lang.CharSequence', 
          AndroidString(text)) 
     intent.putExtra(Intent.EXTRA_TEXT, android_text) 

    if create_chooser: 
     chooser_title = cast('java.lang.CharSequence', 
          AndroidString('Send message with:')) 
     activity.startActivity(Intent.createChooser(intent, 
                chooser_title)) 
    else: 
     activity.startActivity(intent) 


def instance(): 
    return AndroidEmail() 

답변

1

더 오래된 android module은 파일 이름 전달을 지원합니다. 이것을 직접 사용하거나 안드로이드 API의 관련 부분을 호출하여 plyer에 기능을 추가 할 수 있습니다. 나는 당신이 그것을 어떻게하는지 정확하게 재확인하지 않습니다.