我想在安装Android应用程序时创建一些预先创建的文件.
我想在内部存储器(数据/数据//文件/)和新创建的SD卡目录(/ sdcard // data1 /)中创建文件.
我怎样才能做到这一点?
我的应用程序为用户提供了对SMS和电话呼叫的可选访问.我用过:
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:required="false"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS" android:required="false"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE" android:required="false"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
Google Play不会将此应用程序公开给没有蜂窝网络访问权限的设备.似乎required = false参数无法完成其工作.
这是一个错误吗?我还能做些什么吗?
我希望我的Android应用程序使用Webview来显示html表单.当用户按下"提交"按钮时,它希望将名称/值对发送回我的程序.我该怎么做呢?
我已经查看了其他类似的问题,但没有回答说明具体如何做到这一点.
我已经实现了Android Note Pad示例代码中的编辑器代码.现在我想添加垂直滚动文本行的功能.我想要完成的一个例子是Andorid中选项行的滚动滚动
我用谷歌搜索滚动和拖动的例子,但我找不到任何符合我需要的东西.我还没有发现任何东西,甚至远远适合我想要做的事情.
适用于API级别<11的剪贴板代码在API级别> = 11的设备上崩溃.
适用于API级别> = 11的剪贴板代码在API级别<11的设备上崩溃.
我无法为两个版本编译代码,因为它们具有冲突的导入要求.
一个需要:import android.text.ClipboardManager;
而另一个需要:import android.content.ClipboardManager;
当然有一种方法可以编写一些代码,这些代码可以在API级别11的两端工作.我只是想不出来.
***编辑(因为我无法回答我自己的问题)*******
我发现了这个问题.异常消息说:"无法在未调用Looper.prepare()的线程内创建处理程序."
显然我必须跳过一些更多的箍,因为我从Async任务执行此代码.
我正在使用这段复制大文件.Android正好在32个缓冲区加载时因"内存不足"而崩溃.它就像dos.write将数据放入一个大缓冲区,而不是将其假脱机到i/o设备.没有异常被抛出.
bufferSize = 512*1024.bis是BufferedInputStream.byteArray是一个ByteArrayBuffer,
try {
FileOutputStream fos = new FileOutputStream(file);
dos = new DataOutputStream(fos);
int current = 0;
while((current = bis.read()) != -1){
byteArray.append((byte)current);
if (byteArray.isFull()){
byte[] b = byteArray.toByteArray();
dos.write(b, 0, bufferSize);
byteArray.clear();
}
}
int count = byteArray.length();
byte[] b = byteArray.toByteArray();
dos.write(b, 0, count);
dos.flush();
dos.close();
bis.close();
}
catch (Exception e) {
RunTimeError("Exception: " + e);
return false;
}
Run Code Online (Sandbox Code Playgroud)