2016-06-14 3 views
0

私は現在、Androidの学習及びこれに出くわしています:、私の知る限り理解し、いることを知るために使われているintent.getType().indexOf("image/")!=-1がある理由取得意向が

if (intent.getType().indexOf("image/") != -1) { 
    // Handle intents with image data ... 
    } else if (intent.getType().equals("text/plain")) { 
    // Handle intents with text ... 

私は理解していない場合インテントには、タイプImageのデータが含まれています(間違っている場合は修正してください)。なぜそのように使われているのではなく、タイプ"text/plain"で使用されています。その理由はindexOfを使用していて、その理由は-1です。

ご迷惑をおかけして申し訳ございません。しかし、私が言ったように、私は学んでおり、どこの情報もどこにも見つけられませんでした。

答えて

1

私の推測では、誰でもコードを書いた人がこれを使ってimage/で始まるものとマッチしようとしていると思います。 startsWith()を使用する方が簡単で信頼性が高くなります。

1

のgetTypeは、「画像/ PNG」「text/plainの」「アプリケーション/ jsonの」としてのMIMEタイプを返しますなど

indexOfの呼び出しは、文字列「画像/」MIMEタイプのどこかに存在するかどうかを確認することです実際にはそのタイプが画像であればより実用的です。作者はそれが画像であることだけがjepg( "image/jpeg")かpng( "imgage/png")なのか気にしない。

"image /"部分文字列がではなく、が見つかった場合、それは戻り値になります。

画像でない場合は、プレーンテキストかどうかを確認しています。

これはおそらくこれを達成する最もクリーンな方法ではありませんが、それは仕事を完了します。

関連する問題