2017-04-16 15 views
1

私はアンドロイド用のSMS-MMSボールトアプリケーションを開発しています。その目的は、Androidに存在するいくつかの脆弱性を修正し、特定の連絡先(暗号化されたSMSとMMS)間に「安全な」通信スペースを作成することです。画像とテキストの受信MMSの解析

私は、MMSを受信する機能を除いて、すべての目的の機能を実装しました。私はこの問題に関する文書を見つけていない。私はこの機能を実装している他のアプリからたくさんのコードを読んでいて、ストックアプリケーションがMMSを受け取ってからそれを検索するのを待っています。これは私が探しているものではありません。デフォルトのものです。

だから、ここで私の質問を頼む:

意図MMSを受信した後、どのように私は画像とテキストを解析していますか?あなたのことを今

String type = cursor.getString(cursor.getColumnIndex("ct")); 
String partId = cursor.getString(cursor.getColumnIndex("_id")); 


//is type a picture 
if ("image/jpeg".equals(type) || "image/bmp".equals(type) 
    || "image/gif".equals(type) || "image/jpg".equals(type) 
    || "image/png".equals(type)) { 
        getMmsImage(partId); // load in your picture 
     } 

あなたを:型チェックを行う :

答えて

0

だから、あなたが画像を取得するために何ができるか、私はMMSのidを取りに行くと(「// MMS /一部コンテンツ」)を通過していますあなたはちょうどあなたが行うことができますビットマップとしてそれをしたい場合は、あなたが例えば欲しいものを使用してそれを読み込むことができますので、あなたが絵の場所を知っている一部のIDを持っている:

public Bitmap getMmsImage(String _id, Context context) { 

     Uri partURI = Uri.parse("content://mms/part/" + _id); 
     InputStream is = null; 
     Bitmap bitmap = null; 
     try { 
      is = context.getContentResolver().openInputStream(partURI); 
      bitmap = BitmapFactory.decodeStream(is); 

     } catch (Exception e) {// probably should do an ioException around here} 
     finally { 
      if (is != null) { 
       try { 
        is.close(); 
       } catch (IOException e) {} 
      } 
     } 
     return bitmap; 
    } 

今、私はあなたであればということを指摘したいと思いますこれがうまくいかないアニメーション化されたgifを望んでいたら、それはgifをロードしますが、それでも私はメイジ。それらをアニメーション化したい場合は、Glideのようなものを使用して、それにURIのパスの場所を与えることができます。 GlideはGIFを読み込むのにかなり時間がかかりますが、公正な警告だけです。

MMSを受信する場合、オブザーバを使用して、追加されたメッセージに変更を加えたときに常に追加メッセージをロードできます。または、デフォルトのメッセンジャーにしたい場合はブロードキャストレシーバを使用します。

関連する問題