2011-12-05 51 views
1

我試圖訪問我的設備上的數據/文件夾我無法讓它打開?..我植根於我的手機,我想推我的數據庫到我的設備上的數據庫文件夾所以我可以運行我開發的應用程序,它可以在模擬器上正常工作,但是我想在真實的設備上測試它,並且沒有獲取數據庫。推數據庫到根設備

我創建了我的數據庫與記錄使用SQLite管理器,然後我推動它在模擬器上使用DDMS。我嘗試使用代碼插入記錄,但每當應用程序啓動它不斷插入相同的記錄有沒有辦法插入這些記錄只有一次?

這是DBHelper類我插入代碼:

public void inserttable1Contact(String a, String b){ 

       ContentValues initialValues = new ContentValues(); 
       initialValues.put(KEY_a, a); 
       initialValues.put(KEY_b, b); 
       db.insert(DATABASE_TABLE1, null, initialValues);} 

,然後我把它在我的主類:

db.inserttable1Contact("aa", "bb"); 

我已經做了很多搜索,但沒有找到任何有用的答案。 請任何幫助,其非常緊迫。

感謝名單

+0

究竟是什麼問題?你的應用程序沒有看到數據庫,或者它看到它,但反覆插入初始數據? –

+0

沒有調用插入方法(已經插入記錄使用SQLite管理器作爲我asaid),它不起作用我不能將它推到我的設備中的數據文件夾,然後嘗試創建一個空的數據庫並調用插入方法,但它在應用程序運行時會一直插入 – ukama

回答

0

通常你會覆蓋onCreate在SQLiteOpenHelper插入初始數據。由於您是通過側載來創建數據庫的,因此我建議使用某種持久性存儲(例如,共享prefs或db中單獨的一行表)來保存指示db已經存在的標誌用數據初始化。如果該標誌未設置(並設置標誌),則只能調用inserttable1Contact

+0

,所以沒有辦法將我PC上的數據庫直接推送到我的設備上? – ukama

+0

@Ama - 我想我只是描述了一個。您需要確保您將db文件推入恰當的位置。另外,db結構需要完全正確(每個表都需要一個'_id INTEGER PRIMARY KEY'列;如果你正常打開它,它還需要一個'android_metadata'表)。例如,參見[本文](http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/)。 –

+0

問題是我無法訪問確切的位置,我植根於我的設備,但仍將其複製到數據/數據/包/數據庫文件夾,是的,我有android_metadata表,每個表都有一個_id PK列。我嘗試訪問使用文件專家應用程序,我可以訪問的位置(當USB只連接),但我不能將數據庫複製到該位置 – ukama

相關問題