使用appcelerator为android 6.0 app提供写入内部存储的权限的工作代码

时间:2016-09-01 18:56:35

标签: android permissions titanium appcelerator

我试图解决这个问题三天,尝试了许多不同的代码我可以找到零结果。任何人都知道如何在android 6.0设备permission中运行Android应用程序以使用appcelerator写入内部存储空间? SDK 5.4.0或5.3.1

2 个答案:

答案 0 :(得分:0)

我正在使用此模块,这实际上是一种解决方法: https://github.com/gimdongwoo/Ti-Android-RequestStoragePermission

答案 1 :(得分:0)

在appcelerator的帮助下,好像我终于找到了代码示例。

index.js中的

function doClick(e) {
if (!Ti.Filesystem.hasStoragePermissions()) {
Ti.Filesystem.requestStoragePermissions(function(result) {
  console.log('Permission granted? ' + result.success);
  if (result.success) {
    getFile();
  }
  else {
    alert('Permission denied.');
  }
});
  }
else {
getFile();
}
}
function getFile() {
  var url = "http://www.appcelerator.com/wp-content/uploads/GettingStartedTitanium_Linux.pdf";
var fileName = "GettingStartedTitanium_Linux.pdf";

var httpClient = Ti.Network.createHTTPClient();
httpClient.onerror = function(e) {
alert('Download Error: ' + e.error);
};
httpClient.onload = function(e) {
var filePath = Ti.Filesystem.tempDirectory + Ti.Filesystem.separator + fileName;
var f = Ti.Filesystem.getFile(filePath);
var file = f.write(this.responseData);
alert('File exist? ' + f.exists());
};
httpClient.open('GET', url);
httpClient.send();
}
$.index.open();

在" index.xml"

<Alloy>
<Window class="container">
<Label id="label" onClick="doClick">Hello, World</Label>
</Window>
</Alloy>

In&#34; Tiapp.xml&#34; Android部分

<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
</android>