2012-03-08 5 views
1

更新:これを最初に述べる:私はプログラム的な方法を探している。私はそれがエミュレータで簡単に可能であることを知っていますが、私はそれを実際のアプリケーションで携帯電話に実装する方法を探しています。SMSメッセージとシステム通知を偽装する方法を教えてください。プログラム的アプローチ?

私は

ContentValues values = new ContentValues(); 
values.put("address", "5551"); 
values.put("body", "the text of this message"); 
getContentResolver().insert(Uri.parse("content://sms/inbox"),values) 

で、そしてもちろん

<uses-permission android:name="android.permission.WRITE_SMS"/> 
<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.READ_SMS"/> 

WRITE_SMSの受信トレイや送信トレイにメッセージを書き込むことができますが、私は、今しばらくこれで遊んでてきただけであり私が試したすべてのことで、システムに通知を受け取ることができなかったので、以下のいくつかについては、私は組み込みSMSアプリケーションのコードを調べることを考えましたが、それを見つけることができませんでした。ここで

は、私が試した事を来る:今私は、SMS-リストを呼んでいる回避策として

Intent intent = new Intent("android.provider.Telephony.SMS_RECEIVED"); 
byte[] b = (byte[])(SmsMessage.getSubmitPdu("5551","5552","some_text",false).encodedMessage); 
Object[] vrs = {b}; 
intent.putExtra("pdus",vrs); 
sendBroadcast(intent); 

context.getContentResolver().notifyChange(Uri.parse("content://sms/inbox",null); 

は次のようにちょうど同じ非効果があります

Intent intent = new Intent("android.intent.action.MAIN"); 
intent.setComponent(new ComponentName("com.android.mms","com.android.mms.ui.ConversationList")); 
startActivity(intent); 

アイデアやヒントはありますか?私がする必要があると思いますすべての私の理解に


オクラホマので、私はアンドロイドのコードを閲覧されている、特に http://www.java2s.com/Open-Source/Android/android-platform-apps/Mms/com/android/mms/transaction/MessagingNotification.java.htm

は、SMSを書いた後のpublic static MessagingNotification.blockingUpdateAllNotifications(context)を呼び出すです。この方法にアクセスする方法はありますか?

+0

で使用DDMS文書の"Spoofing calls or SMS text messages"セクションに下で見つけることができます。音、振動、ステータスメッセージ、クリックインテントなど、まったく同じように動作します。しかし、これは別の通知です。これは、実際のメッセージが明確な通知を行うことを意味します。今のところ、私は実際にこの動作が好きです。弱い回避策として、着信メッセージを聴くことができ、実際のメッセージがポップアップするとすぐに人工通知を削除することが可能です。誰かが興味を持ったら、私が終了してクリーンアップしたらすぐにいくつかのソースをオンラインにします。 – pinkwerther

+0

MessagingNotification.blockingUpdateAllNotifications(コンテキスト)にアクセスしようとしましたが、できませんでした。また、handcentまたはgosms通知がインストールされている場合、これらの通知はインスタンス化されません。右?私は同じことをしようとしているので、あなたのコードをどこかにアップロードできますか?ありがとう! – asangani

答えて

0

DDMSの「エミュレータコントロール」セクションを使用して、テストSMS /テキストをエミュレータに送信します。また、SMSを送信する偽の番号を入力することもできます。

enter image description here

詳しい情報には、今、私はSMS通知に建てられた模倣終えることが非常に近いよ、[OK]をDEVガイド

+0

はい。また、2つのエミュレータを実行し、エミュレータID(主に555Xのようなもの)を使用してメッセージを送信することもできます。しかし、それは私が探しているものではありません。市場には偽のメッセージを送信し、通知が可能なアプリがありますが、時にはこのようなものを使用したいと思うこともあります。しかし、これらのアプリで醜い広告のために私は自分の持っていることを好むだろう。 – pinkwerther

+0

これは質問された質問とは無関係です。 – Austin

関連する問題