2011-01-26 14 views
31

初心者のAndroidデベロッパーはこちら。AndroidでSMSストレージにアクセスするには?

私は、デバイスに保存されているSMSメッセージを読んで、そのユーザーの習慣に関する統計情報(頻繁にメッセージを出した人や一般的な単語など)を作成するアプリケーションを作成しようとしています。

私の知る限り、これを行う方法はないようです。私はフォーラムを見回してきました。ほとんどの人は、受信トレイにアクセスして、ユーザーが読んでいないメッセージを見つけることができると話しました。どのようにして、デフォルトのアプリとサードパーティ(例えば、Handcent)は同じテキストをどのように表示できますか? Handcentは新規インストール時にすべてのテキストを表示するため、独自のデータベースを保持しません。

tl; dr:Android搭載端末でSMSメッセージを読むにはどうすればよいですか?以前に読んだメッセージ

+1

あなたが要求したデータへのアクセスのない文書やサポート手段がありません。 Sebastian P.にリンクされているような文書化されていない、サポートされていない手段があります。Googleはこれを明示的に示しています。http://android-developers.blogspot.com/2010/05/be-careful-with -content-providers.html – CommonsWare

+1

私はそのような例が見つからない理由を説明しています。正直なところ、私は実際にこの習慣を理解していません。 Googleがコンテンツプロバイダのような有益なコードを作成し、そのコードを保持することを約束していないか、ハードウェアメーカーがそのコードを使用する必要があるのはなぜですか?私は「断片化」問題を本当に理解し始めていると思う。 – eternalmatt

答えて

24

SMS/MMSデータベースにアクセスする具体的な例については、gTalkSMSを参照してください。

+0

gTalkSMSの例は、私が探していたようです。他のチュートリアルは、私が信じている受信トレイに関するものでした。ありがとう! – eternalmatt

+2

将来の見物人に、gTalkSMSの非常に有用なクラスは[SmsManager](https://code.google.com/p/gtalksms/source/browse/src/com/googlecode/gtalksms/cmd/smsCmd/SmsManager.java)です。 )クラス。 – eternalmatt

-5

は、次の手順を実行しhereからSQLLiteデータベースブラウザをダウンロードしてください:

はあなたのDBを検索します。あなたの携帯電話のファイル。

次に、プログラムをインストールするとすぐに「Browse Data」が表示され、そこにすべてのSMSが表示されます。

実際には、データをExcelファイルまたはSQLにエクスポートできます。

+5

smsデータベースへの絶対パスは次のとおりです。 /data/data/com.android.providers/telephony/databases/mmssms.db このパスは、デバイスがルートされており、アプリケーションがスーパーユーザーのアクセス権を要求しない限りアクセスできません。 – Xarph

+6

質問は、これをプログラマティカルに行う方法についてです... –

+0

^これはプログラマティカルではない人を探している人には役立つかもしれませんが、質問には答えませんが、文脈に追加します。 – Enrico

2

SmsManagerクラスに電話する必要があります。あなたはおそらくSTATUS_ON_ICC_READ定数を使用する必要がありますし、多分そこにあなたのアプリのローカルDBにあなたがすでにあなたのアプリを解析するための新しいものとは何を読んでいるのかを追跡することができますに入れて何を入れます。 しかし、マニフェストでクラスの使用を宣言する必要があることを覚えておいてください。ユーザーは、インストール時に表示されるアクセス許可ダイアログで呼び出されたSMSにアクセスできることがわかります。 SMSへのアクセスを見ることは珍しいことで、ユーザーの一部を離れる可能性があります。がんばろう。

Here is the link that goes into depth on the Sms Manager

+1

しかし、OPがSMSアプリを書いている場合、SMSを読む権限を要求するSMSアプリは「珍しい」とみなされるべきではないでしょうか?常識的には、SMSアプリケーションにメッセージを表示させるには、メッセージにアクセスして「読む」ことができる必要があります。 –

関連する問題