我需要将一些数据保存到SD卡,我已经将权限添加到AndroidManifest.xml文件中,当我在Android 4.12 mobile中测试它时,我可以得到正确的结果.
但是当我在Android 5.1移动设备中测试它时,我打开失败:EACCES(Permission denied)错误,为什么?
顺便说一句,我已经阅读了Android 6.0开放失败:EACCES(Permission denied)和Exception'开放失败:EACCES(Permission denied)'在Android上,但现在我的手机是SamSung Android 5.1
码
private void ActionUploadFiles(Map<String, String> files,IHTTPSession session,String uploadFolder){
try{
Set<String> keys = files.keySet();
for (String key:keys) {
String location = files.get(key);
File source = new File(location);
String filename= session.getParms().get(key);
filename=FilenameUtils.getName(filename);
File target = new File(uploadFolder,filename);
FileUtils.copyFile(source,target);
}
}
catch (Exception e) {
Utility.LogError("Upload Error: "+ e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="info.dodata.wifi">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" …Run Code Online (Sandbox Code Playgroud) 我收到以下代码 A 的警告信息,为什么?
可选的 Modifier 参数应具有默认值 Modifier
代码A
@Composable
fun DisplayIcon(
modifier: Modifier=Modifier.size(24.dp),
icon: ImageVector,
tint: Color = Color.Blue
) {
Icon(icon, null, modifier = modifier, tint = tint)
}
Run Code Online (Sandbox Code Playgroud) 代码 A 在 Android 13 或更低版本中运行良好,但在 Android 14 中运行时出现错误 A?
我该如何修复它?
代码A
private fun startForegroundService() {
val builder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val mChannelName = getString(R.string.app_name)
val notificationManager = this.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val notificationChannel = NotificationChannel(
CHANNEL_ID,
mChannelName,
NotificationManager.IMPORTANCE_LOW
)
notificationManager.createNotificationChannel(notificationChannel)
NotificationCompat.Builder(this, notificationChannel.id)
} else {
NotificationCompat.Builder(this)
}
val myIntent = Intent(this, ActivityMain::class.java)
myIntent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP)
val pendingIntent = PendingIntent.getActivity(
this,
0,
myIntent,
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
builder.setSmallIcon(R.drawable.notify_icon)
.setContentTitle(getString(R.string.notificationTitle))
.setTicker(getString(R.string.notificationTicker )) //It will show text on status …Run Code Online (Sandbox Code Playgroud) 在public void onCreateContextMenu(ContextMenu菜单,View v,ContextMenuInfo menuInfo}事件中,
我想我可以通过arg View v使用以下内容知道哪个控件启动onCreateContextMenu事件,对吧?
ImageView imageview =(ImageView)v
但是在public boolean onContextItemSelected(MenuItem item)中,我找不到相同的arg,我该怎么办?谢谢!
我在spinnerRanger.setSelection之后编写Spinner的事件setOnItemSelectedListener.
我认为Toast.makeText(...)第一次运行APP时不会启动,但仍会显示提示信息,为什么?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.cleanup_delete_fragment_old, container, false);
mView = rootView;
mContext = rootView.getContext();
InitValueOfControls();
return rootView;
}
private void InitValueOfControls() {
spinnerRanger = (Spinner)mView.findViewById(R.id.spinner);
PublicParFun.FillRangeSpinner(mView, spinnerRanger);
spinnerRanger.setSelection(PublicParFun.GetIndexOfRangeDeleteOld(mContext));
spinnerRanger.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(mContext, "My "+position, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
致Trevor Carothers:
如果我DoLongTimeOperation()在Selection侦听器事件之前插入一个 ,它还会显示toast吗?
private void InitValueOfControls() …Run Code Online (Sandbox Code Playgroud) 我在我的Android应用程序中使用NanoHTTPD作为Web服务器.
我将两个文件名从客户端浏览器传递给NanoHTTPD服务器,我希望一次下载这两个文件,但下面的代码只下载file1,而不下载file2.
如何一次下载两个或多个文件?
public class MyWebServer extends NanoHTTPD
{
private final String rootDir;
public MyWebServer(int port, String rootDir)
{
super("192.168.1.4", port);
this.rootDir = rootDir;
}
@Override
public Response serve(IHTTPSession session)
{
Map<String, String> parms = session.getParms();
String filename1=GetFilename(parms);
String filename2=GetFilename(parms);
File file1 = new File(rootDir + filename1);
File file2 = new File(rootDir + filename2);
return downloadFile(file1);
return downloadFile(file2);
}
private Response downloadFile(File file)
{
FileInputStream fis = null;
try
{
fis = new FileInputStream(file);
} catch (FileNotFoundException ex)
{
Logger.getLogger(MyWebServer.class.getName()).log(Level.SEVERE, …Run Code Online (Sandbox Code Playgroud) 我希望在我的Android Studio 3.3.1项目中使用GitHub.我在某些方面谷歌,我发现方式分为两种方式.
方式1:例如 https://medium.com/code-yoga/how-to-link-android-studio-with-github-312037a13b99
It need VCS > Import into Version Control > Share project on Github
Run Code Online (Sandbox Code Playgroud)
方式2:例如 https://www.londonappdeveloper.com/how-to-use-git-hub-with-android-studio/
It need VCS > Import into Version Control > Create Git Repository.
Run Code Online (Sandbox Code Playgroud)
Way 1和Way2有什么不同?
之间有什么不同Github上分享项目和创建Git仓库等操作?
方式1很简单,但我不知道它是否正确.
我正在学习 CameraX,CameraXBasic是示例代码。
我写了一个基于zoomX函数的CameraFragment.kt。你可以看到代码A。我认为该功能可以随时放大图片。
我发现一个画面可以当我是变焦调用它与SA小的值,例如zoomX(2f),zoomX(3f),但画面不会放大当我再次用大值,比如zoomX(6.0f),zoomX(7.0f)为什么?
代码 A
private lateinit var viewFinder: TextureView
private var preview: Preview? = null
fun zoomX(orign: Float ){
val x=orign+1
val singleWidth=viewFinder.width/x
val singleHeight=viewFinder.height/x
val left=viewFinder.width/2f-singleWidth/2f
val right=left+singleWidth
val top=viewFinder.height/2f-singleHeight/2f
val bottom=top+singleHeight
val my= Rect(left.toInt(), top.toInt(), right.toInt(), bottom.toInt())
preview?.zoom(my)
}
Run Code Online (Sandbox Code Playgroud) 我正在学习 Kotlin 的协程。文本 A 来自https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#8
Kotlin 协程中的 main-safe 是什么?
这是否意味着系统会在需要时自动在后台线程中运行它们?
withContext(Dispatchers.IO) 这是否意味着我永远不会在 Room 和 Retrofit 操作中使用这些代码?
文本A
Room 和 Retrofit 都使悬挂功能成为主安全的。从 Dispatchers.Main 调用这些挂起函数是安全的,即使它们从网络获取并写入数据库也是如此。
我已阅读检测传出呼叫并在android中调用hangup事件
我想做一个应用程序来检测后台作为服务的呼叫事件,我想我应该选择BroadcastReceiver,因为即使我退出应用程序,应用程序也会保持检测呼叫.我认为停止检测呼叫的唯一方法是在使用BroadcastReceiver时卸载应用程序.
如果我选择PhoneStateListener,我认为如果我退出应用程序,应用程序将停止检测呼叫.
对?
谢谢!