2012-08-02 98 views
2

我正嘗試從我的android應用程序啓動亞馬遜Kindle應用程序,但是基於用戶單擊的特定書籍。如何從Android打開kindle電子書?

我可以確定可用書籍以及用戶選擇了哪本書,但我只能啓動kindle應用程序(使用包名稱com.amazon.kindle)來啓動kindle應用程序。

有誰知道任何額外的命令,我可以發送指定一本書打開?我知道這是可能的,因爲在谷歌播放商店有一個小部件,用戶選擇一個噓聲,它會在主屏幕上創建一個按鈕,啓動kindle應用程序並打開書。

在此先感謝!

+0

如果您有權訪問Amazon Kindle的清單,您可能可以從意向過濾器中找出 – 2012-08-02 14:36:28

回答

1

首先我們需要將意圖設置爲ACTION_VIEW意圖。

然後,我們需要定義它實際上是一個看起來像一個鏈路的數據的Uri點燃://書/動作=開放& book_id = AMZNID0/B000FC1GHO/0/,其中在這種情況下? 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的意圖,這可能是其他類的句柄,onClickListenerimageview持有我想要的書。

相關問題