6

この問題は何度か報告されていますが、まだ解決されていません。Samsungの開発者サイトまたはStackOverflowで、このトピックに何らかの形で関連するすべてのメッセージ/スレッドを読みました

もう一度、問題全体を短い言葉で説明しましょう。

  1. 開発者は、次のような単純なクエリを使用して SMS 会話のリストを取得していました。

    Uri.parse("content://mms-sms/conversations/"); Cursor cursor = context.getApplicationContext().getContentResolver().query(uri, null, null, null, null);

    またはこのようなもの。ここでの重要なポイントは、URI アドレスです。content://mms-sms/conversations

  2. それが非公式であり、自分の責任で行っていることは誰もが知っています -ここの証明リンクを参照してください

  3. ただし、重要な点は、このコードが Samsung Galaxy S3 と Galaxy Tab 2 の一部のモデルでのみ正しく機能しないという単純な事実です。NullPointerExceptionスタックトレースで生成されます。

    java.lang.NullPointerException at android.os.Parcel.readException(Parcel.java:1431) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140) at android.content.ContentProviderProxy.query(ContentProviderNative.java:366) at android.content.ContentResolver.query(ContentResolver.java:372) at android.content.ContentResolver.query(ContentResolver.java:315)

世界/宇宙の他のすべてのデバイスでは、うまく機能します! 変ですよね?

私は次のような答えを知っています:ねえ、それはあなたの問題です.前述のURIの存在/正確性は保証されていませんが、誰かがより生産的なアイデアを持っていますか?

フォーラムを通じて Samsung の開発者に質問を投稿しました。

4

3 に答える 3

10

最後に、前述の問題を克服する方法を考え出しました(バグかどうかはわかりませんが、とにかくバグのように見えます)。

会話のリストは、次のクエリで取得できます。

Uri.parse("content://mms-sms/conversations?simple=true"); 
Cursor cursor = context.getApplicationContext().getContentResolver().query(uri, null, null, null, null);

キーポイントは URIcontent://mms-sms/conversations?simple=trueです。

于 2012-11-30T07:37:10.633 に答える
1

私もこの問題に遭遇しましたが、それを解決する方法はないようです。@barmaleyの回答を確認しましたが、同じ例外が発生します

@edit 私の友人が彼の sgs3 でこれをチェックしたところ、うまくいきました! しかし、彼はボディ/アドレスの列を取得できませんが、それはスタートです! それが私のものではなく彼で機能するのは非常に奇妙です。私のsgs3はポーランドのディストリビューションからのもので、彼はアメリカからのものです...地域間に違いがある場合、これは予想よりも悪い可能性があります

于 2012-11-30T07:50:30.150 に答える