我正在尝试从我的Android应用程序启动亚马逊Kindle应用程序,但是基于用户点击的特定书籍。
我能够确定可用的书籍和用户选择的书籍,但我只能启动kindle应用程序(使用包名com.amazon.kindle)来启动kindle应用程序。
有没有人知道我可以发送任何其他命令来指定要打开的书?我知道这是可能的,因为Google Play商店中有一个小部件,用户选择一个小工具,它会在主屏幕上创建一个按钮,启动kindle应用程序并打开书。
提前致谢!
答案 0 :(得分:1)
首先,我们需要将意图设置为ACTION_VIEW
意图。
然后我们需要为数据定义Uri
,这实际上是一个类似于以下内容的链接: kindle:// book /?action = open&amp; book_id = AMZNID0 / B000FC1GHO / 0 / < / strong>,在这种情况下,B000FC1GHO部分对应于图书的ID。
最后我们可以开始活动。在我的情况下,我必须在启动新活动的意图上设置一些标志。
我正在使用的代码如下:
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
意图,这可能是另一个类中的句柄,它为保存我想要的书的onClickListener
执行imageview
。