0

我正在使用Android 市场 API

MarketSession session = new MarketSession();
        session.setAuthSubToken(token);
        session.getContext().setAndroidId( Settings.Secure.getString(getContentResolver(),
                            "android_id"));


        String query = "map";
        AppsRequest appsRequest = AppsRequest.newBuilder().setQuery(query)
                .setStartIndex(0).setStartIndex(0).setEntriesCount(10)
                .setWithExtendedInfo(true).build();

        session.append(appsRequest, new Callback<AppsResponse>() {
            @Override
            public void onResult(ResponseContext context,
                    AppsResponse response) {

                Debug.e("", "Total App: " + response.getAppList().size());

                for (int i = 0; i < response.getAppCount(); i++) {
                    Debug.e("", "" + response.getApp(i).getTitle());
                }

            }
        });

        session.flush();

我的日志猫

04-03 15:35:44.748: W/System.err(28330): Caused by: java.lang.RuntimeException: Response code = 400, msg = Bad Request

这是setAndroidId因为如果我使用dead000beef的是 Android,那么它可以工作,并且高于 Android id(我的 Galaxy s3 android id)不起作用。

它实际上是android id吗?

4

1 回答 1

1

您使用了错误的android id,这种方式对我有用

    TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    String udid = telephonyManager.getDeviceId();
    session = new MarketSession();
    session.getContext().setAndroidId(udid);
    session.setAuthSubToken(token);

不要忘记添加此权限

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
于 2013-12-30T15:11:22.657 回答