

Pixel デバイスのビルド番号 RQ1A.201205.003 以降で以下のエラーが発生します。  
これは OS のバグか仕様変更か、情報がありましたら教えていただけませんでしょうか。

■コード

[code]

          ContentResolver resolver = getContentResolver();
          String order = "date ASC limit 100";
          Cursor cursor = resolver.query(
              CallLog.Calls.CONTENT_URI,
              null,
              null,
              null,
              order);
    
[/code]

■エラー内容

[code]

    "Invalid token limit,LINE:142,Method:readExceptionFromParcel Exception:Invalid token limit"
    
[/code]

■このエラーが発生するビルド番号  
2020年12月のアップデートから発生するようです。

[code]

    https://support.google.com/pixelphone/thread/87641266
    ・RQ1A.201205.003
    ・RQ1A.201205.008
    ・RQ1A.201205.011
    
    https://support.google.com/pixelphone/thread/93232095
    ・RQ1A.210105.002
    ・RQ1A.210105.003
    
    https://support.google.com/pixelphone/thread/96244000
    ・RQ1A.210205.004
    
[/code]

■limit 句を以下のコードに置き換えるとエラーは発生しません

[code]

    buildUpon().appendQueryParameter("limit", "100")
    
[/code]

■追記  
公式ドキュメントの方式で実装すると、エラーは発生しませんが、`LIMIT` 句が動作しませんでした（全件取得されてしまう）。

[ContentProvider -
query](https://developer.android.com/reference/android/content/ContentProvider#query\(android.net.Uri,%20java.lang.String%5B%5D,%20android.os.Bundle,%20android.os.CancellationSignal\))

[code]

     // Request 20 records starting at row index 30.
     Bundle queryArgs = new Bundle();
     queryArgs.putInt(ContentResolver.QUERY_ARG_OFFSET, 30);
     queryArgs.putInt(ContentResolver.QUERY_ARG_LIMIT, 20);
     
     Cursor cursor = getContentResolver().query(
           contentUri,    // Content Uri is specific to individual content providers.
           projection,    // String[] describing which columns to return.
           queryArgs,     // Query arguments.
           null);         // Cancellation signal.
    
[/code]


CC BY-SA 4.0
2021-02-19T12:33:35.740
74138
2021-02-24T10:39:43.293
2021-02-24T10:39:43.293
44032
44032
question
android
ContentResolver.query() で "Invalid token limit" エラーが発生する