2016-05-09 9 views
0

私はオンラインで検索し、AndroidManifest.xmlファイルのintent-filterを見つけました。しかし、私はまだ私のアプリケーションでクリックされた電子メールIDを受け取る方法を見つけることができません。インテントフィルタを使用してシステムから電子メールを受信する方法は?

私の問題

  • は、私は電子メールID([email protected])を含む私のWhatsAppチャットボックスにメッセージを受け取ったと仮定します。
  • 電子メールID([email protected])をクリックすると、自分のアプリを開くことができます。 (インテントフィルターを使用している)
  • 私のアプリケーションを開くと、電子メールID([email protected])が自分のアクティビティのEditTextに自動的にコピーされます。

私は、次の機能を試してみました:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Intent intent = getIntent(); 
     String x = intent.getExtras().getString(Intent.EXTRA_EMAIL); 
     Toast.makeText(MainActivity.this, x, Toast.LENGTH_SHORT).show(); 
} 

*トーストは、文字列を受信し、あるいは全くされているかどうかをチェックするためです。

しかし、トーストは空になり、文字列が受信されないことが示されます。

+0

"私は次の機能を試しました" - あなたはEXTRA_EMAILという値があると思いますか?あなたが応答している '<インテントフィルタ>'とは何ですか? – CommonsWare

+0

私はEXTRA_EMAILを使用していましたが、インテントで他のメールキーの値を見つけることができなかったためです。私は、システム全体でAndroidシステムが電子メールアドレスをクリックするのに応答します。 –

+0

「Androidシステムのクリックに応答して、システム全体のメールアドレスをクリックする」 - これは不可能です。あなたが応答している**特定の** '<インテントフィルター>'(またはフィルター)とは何ですか?次に、それだけで、対応する 'Intent'から電子メールアドレスを取得する方法、またはその特定の' Intent'が電子メールアドレスと関係しないかどうかについてアドバイスできます。 – CommonsWare

答えて

0

をアプリが経由して、あなたのアクティビティを呼び出す場合ACTION_VIEWIntent、そのアプリがあなたにメールアドレスを与えるための文書化された手段はありません。

アプリがACTION_SENDTOIntentでアクティビティを呼び出す場合、メールアドレスはUriになります。そのUriスキームはmailto:でなければなりません(フィルタがそれを制限しているものとして)。私はと思っています。getSchemeSpecificPart()Uriにアドレスを取得していますが、これは試していません。

<intent-filter>で設定した2つのうちの1つを除いて、ユーザーがメールアドレスをクリックしたときにアプリが任意の第三者活動を開始する必要はありません。

+0

ありがとうございます。あなたは私のコードを少しでも助けてください(uri)、または参考文献/例へのリンクを私に教えてください 同様に? –

+0

@TanishqSharma:あなたは 'Activity'で' getIntent() 'を呼び出して' Intent'を取得します。 'Intent'で' getData() 'を呼び出して' Uri'を取得します。 'Uri'で' getSchemeSpecificPart() 'を呼び出して電子メールアドレスを取得すると思います。 – CommonsWare

+0

ありがとうございます。すぐにそれを試してください –

1

電子メールの意図は実際に電子メールの送信/作成用に設計されたものであり、電子メールからアプリケーションにデータをコピーするものではありません。ここを参照してください:

http://developer.android.com/guide/components/intents-common.html#Email

あなたが誰かのための電子メールアドレスを取得したい場合は、代わりに連絡先の意図を試してみたいことがあります。

http://developer.android.com/guide/components/intents-common.html#Contacts

+0

返信いただきありがとうございます。私の問題はこことは少し異なります。例えば、誰かがメッセージ、whatsapp、または他の場所から電子メールをクリックすると、自分のアプリを開けてその電子メールアドレスを受信したい場合。 –

関連する問題