java - 如何使用非官方 Android Market API?

标签 java android flush google-play

我正在尝试来自 here 的示例代码.但是我的应用程序崩溃了。

我添加了日志记录,发现它在 session.flush(); 处崩溃,所以我删除了那一行,它不再崩溃了。

但它没有到达 onResult 回调。

package com.mytest.app;

import com.gc.android.market.api.MarketSession;
import com.gc.android.market.api.MarketSession.Callback;
import com.gc.android.market.api.model.Market.AppsRequest;
import com.gc.android.market.api.model.Market.AppsResponse;
import com.gc.android.market.api.model.Market.ResponseContext;

import android.app.Activity;
import android.os.Bundle;
import android.provider.Settings.Secure;
import android.util.Log;

public class MarketAPITestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.d("Market API", "Started");

        String email = "somebody@gmail.com";
        String pass = "mypass";
        String AndroidId = Secure.getString(this.getContentResolver(), Secure.ANDROID_ID);

        MarketSession session = new MarketSession();
        session.login(email,pass);
        session.getContext().setAndroidId(AndroidId);

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

        session.append(appsRequest, new Callback<AppsResponse>() {
                 @Override
                 public void onResult(ResponseContext context, AppsResponse response) {
                        Log.d("Market API", "Got response");
                 }
        });

        session.flush();                        
    }
}

最佳答案

androidId 有问题。而不是:

String AndroidId = Secure.getString(this.getContentResolver(), Secure.ANDROID_ID);

使用这个:

String AndroidId = "dead000beef";

有效。

关于java - 如何使用非官方 Android Market API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944441/

相关文章:

python - 为什么指定end关键字时python3的print语句不刷新输出?

java - 保持输出流打开

Java TCP 服务器在发送所有行时收到来自客户端的每一行

java - Hibernate Criteria - 投影中的多种实体类型

Java主类在线程执行之前结束

android - 如何删除 fragment 内的 View

java - 不能用java随机设置一个新按钮

java - Spring MVC : application context is running twice

java - 为什么我的java代码输出错误的数字?

Android如何在fragments中高效实现数据缓存和配置变化事件?