Android-market-api中的AndroidId是什么?

时间:2013-04-03 10:11:05

标签: android google-play

我正在使用Android market 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();

我的logcat

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吗?

1 个答案:

答案 0 :(得分: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"/>
相关问题