2013-04-24 45 views
2

我想實現一個Android應用程序,它可以監視另一個特定應用程序的sqlite數據庫,並從表中刪除一些特定的行。工作senaria是如下:在Android中,如何監視其他應用程序的sqlite數據庫並更新一些行

  1. 打開一個特定的社交應用程序(例如,微博),然後按 刷新/ LoadMore
  2. 社交應用發送HTTP請求來檢索 數據
  3. 社交應用程序解析結果,並插入到sqlite的 數據庫
  4. [我的應用]我的應用程序監控表的變化,並更新 一些行
  5. 的從sqlite的社會應用顯示記錄UI(012我的應用刪除的行不會顯示在用戶界面中)。

是否有可能開發這樣的應用程序?我明白這個程序需要root權限。但是如果應用程序具有root訪問權限,我可以實現這一目標嗎?謝謝。

+1

哎喲檢查這個artical和這兩ARTICAL!我會討厭另一個應用程序搞亂我的應用程序的數據。 ;-)你是否考慮過它會如何影響目標應用程序,如果你的應用程序損壞了它的數據? – 2013-04-24 07:16:21

+0

這是應該由相關應用程序公開的功能,而不是您強制使用的功能。 – paxdiablo 2013-04-24 07:18:13

+0

感謝您的評論。在這裏我只想知道這是否可能。 – XWang 2013-04-24 10:31:19

回答

0

這是隻有當其他應用程序已使用ContentProvider和給我們的權限訪問。

A ContentProvider可以在應用程序內部用於訪問數據。如果數據應該與另一個應用程序共享,則ContentProvider允許這樣做。

很多Android數據源,例如contacts,可通過ContentProviders訪問。 Typically the implementing classes for a ContentProviders provide public constants for the URIs.

更多細節從Adnroid內開發onetwo

+0

謝謝。如果目標應用程序的內容提供者的提供者是「android:exported = false」,那麼即使我的應用程序具有root權限,它仍然無法訪問它? – XWang 2013-04-24 11:37:44

+0

我並不覺得你這樣做,但你可以訪問所有的文件系統,如果你的應用程序有根訪問權限。 – 2013-04-24 12:11:14

+0

是的,我可以做到這一點。但我真的很喜歡觀察者設計模式,不想做循環檢查。這就是爲什麼我想知道我是否可以訪問其他應用程序的ContentProvider,即使它設置爲exported = false。 – XWang 2013-04-24 13:00:31

相關問題