我已经构建了一个Cordova应用程序 (cordova -v 7.0.1,cordova-android 6.1.0)。
包括自动启动。这意味着当DEFINED在应用程序中连接蓝牙设备时,应用程序将启动。
这样做的方式:
这是在2016年底编制的。它现在已经工作了,即使是使用更新的,软件方面的设备。
我决定做一些应用更新,现在它停止了工作。经过一些调试后,我看到我无法读取file__0.localstorage。这就是我到目前为止所做的:
File dataDir = new File(context.getFilesDir().getParent());
File appWebViewFilesDir = new File(dataDir, "app_webview/Local Storage/file__0.localstorage");
Log.d(TAG, "Absolute path is " + appWebViewFilesDir.getAbsolutePath());
//Result (rooted phone): path is given.
//Result (UNrooted phone): path is given.
Log.d(TAG, "Fine name is " + appWebViewFilesDir.getName());
//Result (rooted phone): name is given.
//Result (UNrooted phone): name is given.
Log.d(TAG, "Is file Readable " + appWebViewFilesDir.canRead());
//Result (rooted phone): true.
//Result (UNrooted phone): false.
Log.d(TAG, "Tring to set file to readable? " +appWebViewFilesDir.setReadable(true));
//Result (rooted phone): true.
//Result (UNrooted phone): false.
Log.d(TAG, "Tring to set file to readable for all users? " + appWebViewFilesDir.setReadable(true, true));
//Result (rooted phone): true.
//Result (UNrooted phone): false.
Log.d(TAG, "Is file Readable " + appWebViewFilesDir.canRead());
//Result (rooted phone): true.
//Result (UNrooted phone): false.
Log.d(TAG, "Does this file exist " + appWebViewFilesDir.exists());
//Result (rooted phone): true.
//Result (UNrooted phone): false.
有什么想法改变了吗?
任何想法如何在不必根设备的情况下访问localStorage file__0.localstorage?
可以在不必实施新的数据存储系统的情况下解决这个问题吗?
P.S。在这种情况下,数据持久性并不重要。
答案 0 :(得分:1)
这不是Android 7的问题。 localstorage似乎取决于webview。 webview可以独立升级。
可以在不必实现新数据的情况下解决此问题 存储系统?
是。 file__1.localstorage是一个SQLLite数据库。现在,在同一文件夹app_webview/Local Storage
中,您应找到另一个文件夹leveldb
。 LevelDB是由谷歌创建的数据库。您可以使用java包装器(例如leveldb-android)来访问它。然后你应该使用迭代器迭代条目,寻找你需要的条目。在我的情况下,调用get()
返回null
。