2

我正在尝试从我的 android 应用程序启动 Amazon Kindle 应用程序,但基于用户单击的特定书籍。

我能够确定可用的书籍以及用户选择了哪本书,但我只能启动 kindle 应用程序(使用包名称 com.amazon.kindle)来启动 kindle 应用程序。

有谁知道我可以发送任何其他命令来指定要打开的书?我知道这是可能的,因为在 google play 商店中有一个小部件,用户可以在其中选择一个嘘声,它会在主屏幕上创建一个按钮来启动 kindle 应用程序并打开这本书。

提前致谢!

4

1 回答 1

1

首先,我们需要将意图设置为ACTION_VIEW意图。

然后我们需要为Uri数据定义一个链接,它实际上是一个看起来像这样的链接:kindle://book/?action=open&book_id=AMZNID0/B000FC1GHO/0/,在这种情况下,B000FC1GHO 部分对应于书。

最后我们就可以开始活动了。就我而言,我必须设置一些标志来启动新活动。

我正在使用的代码如下:

if(intent.getAction().contains("BOOK_ACTION_"))
    {
        Log.w("LOG", "We have a book selected");

        bookID = intent.getAction().substring(12);
        Log.w("LOG", bookID);

        Intent readbook = new Intent(Intent.ACTION_VIEW);
        readbook.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        Uri file = Uri.parse("kindle://book/?action=open&book_id=AMZNID0/" + bookID + "/0/");
        readbook.setData(file);
        context.startActivity(readbook);

    }

在这种情况下,我将覆盖该onReceive方法,以便我可以在每本书上执行一些额外的步骤。大概是因为我只是在设置一个ACTION_VIEW意图,这可能是另一个类中的句柄,该类onClickListenerimageview持有我想要的书。

于 2012-08-03T01:57:03.530 回答