小编Hel*_*oCW的帖子

我打开失败:当我尝试在Android 5.1中将数据写入SD卡时出现EACCES(Permission denied)错误,为什么?

我需要将一些数据保存到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)

android

10
推荐指数
1
解决办法
1033
查看次数

为什么我在 Jetpack Compose 中收到警告“可选修饰符参数应具有默认值修饰符”?

我收到以下代码 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)

android android-jetpack-compose

10
推荐指数
1
解决办法
1749
查看次数

为什么我在 Android 14 上执行代码时遇到“在没有类型的情况下启动 FGS”错误?

代码 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)

android kotlin

10
推荐指数
1
解决办法
4648
查看次数

如何在OnContextItemSelected事件中获取View?

在public void onCreateContextMenu(ContextMenu菜单,View v,ContextMenuInfo menuInfo}事件中,

我想我可以通过arg View v使用以下内容知道哪个控件启动onCreateContextMenu事件,对吧?
ImageView imageview =(ImageView)v

但是在public boolean onContextItemSelected(MenuItem item)中,我找不到相同的arg,我该怎么办?谢谢!

android

9
推荐指数
1
解决办法
7672
查看次数

为什么即使事件setOnItemSelectedListener在setSelection之后,Spinner控件仍然显示提示信息?

我在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

9
推荐指数
1
解决办法
142
查看次数

如何使用NanoHTTPD在Android中一次下载两个或多个文件?

我在我的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 nanohttpd

9
推荐指数
1
解决办法
1347
查看次数

当我将GitHub集成到我的Android Studio 3.3.1项目时,哪种方法是正确的?

我希望在我的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很简单,但我不知道它是否正确.

git github android-studio

9
推荐指数
1
解决办法
304
查看次数

为什么 CameraX 不能在 Android Studio 中将图片放大到我需要的大小?

我正在学习 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)

android zooming kotlin android-camerax

9
推荐指数
1
解决办法
1335
查看次数

Kotlin 协程中的 main-safe 是什么?

我正在学习 Kotlin 的协程。文本 A 来自https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#8

Kotlin 协程中的 main-safe 是什么?

这是否意味着系统会在需要时自动在后台线程中运行它们?

withContext(Dispatchers.IO) 这是否意味着我永远不会在 Room 和 Retrofit 操作中使用这些代码?

文本A

Room 和 Retrofit 都使悬挂功能成为主安全的。从 Dispatchers.Main 调用这些挂起函数是安全的,即使它们从网络获取并写入数据库也是如此。

kotlin kotlin-coroutines

9
推荐指数
2
解决办法
2883
查看次数

当我需要在android中检测调用事件时,我应该在BroadcastReceiver和PhoneStateListener之间做什么选择?

我已阅读检测传出呼叫并在android中调用hangup事件

我想做一个应用程序来检测后台作为服务的呼叫事件,我想我应该选择BroadcastReceiver,因为即使我退出应用程序,应用程序也会保持检测呼叫.我认为停止检测呼叫的唯一方法是在使用BroadcastReceiver时卸载应用程序.

如果我选择PhoneStateListener,我认为如果我退出应用程序,应用程序将停止检测呼叫.

对?

谢谢!

android

8
推荐指数
1
解决办法
694
查看次数