增加内外storage的读取

This commit is contained in:
cebgcontract 2022-12-20 12:46:35 +08:00
parent cb54fd021e
commit a5d459fe3f
5 changed files with 32 additions and 2 deletions

View File

@ -459,6 +459,8 @@ public:
*/
virtual std::string getWritablePath() const = 0;
virtual std::string getExtFileDirectory() const = 0;
/**
* Sets writable path.
*/

View File

@ -328,6 +328,25 @@ std::string FileUtilsAndroid::getWritablePath() const
}
}
std::string FileUtilsAndroid::getExtFileDirectory() const
{
// Fix for Nexus 10 (Android 4.2 multi-user environment)
// the path is retrieved through Java Context.getCacheDir() method
std::string dir("");
std::string tmp = JniHelper::callStaticStringMethod(JCLS_HELPER, "getExtFileDirectory");
if (tmp.length() > 0)
{
dir.append(tmp).append("/");
return dir;
}
else
{
return "";
}
}
NS_CC_END
#endif // CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID

View File

@ -70,6 +70,7 @@ public:
virtual FileUtils::Status getContents(const std::string& filename, ResizableBuffer* buffer) override;
virtual std::string getWritablePath() const override;
virtual std::string getExtFileDirectory() const override;
virtual bool isAbsolutePath(const std::string& strPath) const override;
private:

View File

@ -83,6 +83,7 @@ public class Cocos2dxHelper {
private static boolean sActivityVisible;
private static String sPackageName;
private static String sFileDirectory;
private static String sExtFileDirectory;
private static Activity sActivity = null;
private static Cocos2dxHelperListener sCocos2dxHelperListener;
private static Set<OnActivityResultListener> onActivityResultListeners = new LinkedHashSet<OnActivityResultListener>();
@ -205,8 +206,8 @@ public class Cocos2dxHelper {
final ApplicationInfo applicationInfo = activity.getApplicationInfo();
Cocos2dxHelper.sPackageName = applicationInfo.packageName;
Cocos2dxHelper.sFileDirectory = activity.getExternalFilesDir("luaframework").getAbsolutePath();
// Cocos2dxHelper.sFileDirectory = activity.getFilesDir().getAbsolutePath();
Cocos2dxHelper.sExtFileDirectory = activity.getExternalFilesDir(null).getAbsolutePath();
Cocos2dxHelper.sFileDirectory = activity.getFilesDir().getAbsolutePath();
Cocos2dxHelper.nativeSetApkPath(Cocos2dxHelper.getAssetsPath());
@ -300,6 +301,9 @@ public class Cocos2dxHelper {
public static String getWritablePath() {
return Cocos2dxHelper.sFileDirectory;
}
public static String getExtFileDirectory() {
return Cocos2dxHelper.sExtFileDirectory;
}
public static String getCurrentLanguage() {
return Locale.getDefault().getLanguage();

View File

@ -232,7 +232,11 @@ void jsb_init_file_operation_delegate()
se::ScriptEngine::getInstance()->setFileOperationDelegate(delegate);
}
std::string path = FileUtils::getInstance()->getWritablePath();
std::string extPath = FileUtils::getInstance()->getExtFileDirectory();
extPath += "luaframework/";
path += "luaframework/";
std::vector<std::string> searchPaths;
searchPaths.push_back(extPath);
searchPaths.push_back(path);
searchPaths.push_back("");
FileUtils::getInstance()->setSearchPaths(searchPaths);