相关疑难解决方法(0)

Java android Java.io.FileNotFoundException:无内容提供者:/storage/emulated/0/Android/data

我想拍一张照片并在 imageView 中显示这张照片,它在 api 23 和 24 上无法正常工作我尝试添加了一个文件提供程序,这就是我所做的。

我的活动:

public class TestActivity extends AppCompatActivity {

    ImageView iv;
    private File photoFile;
    private String mCurrentPhotoPath;
    private static final String TAG = "PHOTO";



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        iv = (ImageView) findViewById(R.id.iv);

        photo();


    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            if (mCurrentPhotoPath != null) {
                File file = new File(mCurrentPhotoPath);
                if(file.exists())
                    Log.e(TAG , "photo jest");
                try { …
Run Code Online (Sandbox Code Playgroud)

java android

3
推荐指数
2
解决办法
1万
查看次数

是否可以在Android中将文本转换为PDF?

我想通过我的应用程序创建一个PDF文件,并希望通过电子邮件将PDF文件作为附件发送.在Android中有可能吗?如果是,请说明如何.

android

2
推荐指数
1
解决办法
1万
查看次数

android marshmallow - SMS_RECEIVED权限

我最近更新了我的应用程序,以支持android 6 marshmallow.我按照https://developer.android.com/training/permissions/requesting.html上的说明进行操作

并为Manifest.permission.RECEIVE_SMS添加了requestPermissions.当我运行以下代码时:

        Log.i(TAG, "sending SMS...");
        Intent intent = new Intent("android.provider.Telephony.SMS_RECEIVED");
        intent.putExtra("pdus", data);

        getContext().sendOrderedBroadcast(intent, null);
Run Code Online (Sandbox Code Playgroud)

我明白了

java.lang.SecurityException:Permission Denial:不允许从pid = 1999发送广播android.provider.Telephony.SMS_RECEIVED,uid = 10056

即使我授予SMS_RECEIVED权限,我也无法在设备上发送短信广播.

任何想法为什么我在Android 6上获得此安全异常.

我的目标是在我的设备链接中生成假短信[ 我可以发送"短信接收意图"吗? .我没有在谷歌上发现任何提及它不再允许.

android-6.0-marshmallow

1
推荐指数
1
解决办法
2万
查看次数

java.lang.SecurityException:呼叫者uid XXXXX缺少任何android.permission.GET_ACCOUNTS

注意:这不是重复的,我在类似的StackOverflow问题中尝试了很多解决方案,但在我的情况下它们不起作用。感谢您的任何帮助。

只有在运行Android 6.0之前的版本的设备上才会发生此崩溃。例如,它在运行Android 5.1版的XT1032上崩溃。在这种情况下,每当我调用此方法时,在我的AppCompatActivity的onCreate方法中,

AccountManager.get(this).addOnAccountsUpdatedListener(this, null, true);

它崩溃是因为它似乎没有所需的权限(并且我不知道为什么,因为它在清单中)。我相信它并没有真正进入方法,但是由于@RequiresPermission行而导致在进入方法时崩溃:

@RequiresPermission(GET_ACCOUNTS)
    public void addOnAccountsUpdatedListener(final OnAccountsUpdateListener listener,
            Handler handler, boolean updateImmediately) { ...
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪,还有更多的日志记录代码:

V/AccountManagerService: getAccounts: accountType null, caller's uid 10018, pid 23074
V/AccountManagerService:   caller uid 10018 has android.permission.GET_ACCOUNTS
V/AccountManagerService: getAccounts: accountType null, caller's uid 10018, pid 23074
V/AccountManagerService:   caller uid 10018 has android.permission.GET_ACCOUNTS
V/AccountManagerService:   caller uid 10009 has android.permission.INTERACT_ACROSS_USERS
V/AccountManagerService: getAccounts: accountType com.google, caller's uid 10009, pid 1738
V/AccountManagerService:   caller uid 10009 has android.permission.GET_ACCOUNTS
V/AccountManagerService: getAccounts: accountType null, caller's uid 10018, pid …
Run Code Online (Sandbox Code Playgroud)

android android-securityexception

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

为什么文件夹不是在某些Android设备的内部存储中创建的?

我在内部存储中创建了一个用于存储文件的文件夹.但问题是某些Android设备中未创建该文件夹.该文件夹是在棒棒糖设备中创建的,但不是在oreo和nougat中创建的.

  • 问题是什么?
  • 更高级别的API是否需要任何其他权限?

用于在内部存储中创建文件夹的代码

File f1 = new File(Environment.getExternalStorageDirectory(), Constants.STORED_FOLDER);
if (!f1.exists()) {
  f1.mkdirs();
}
Log.e("check_path", "" + f1.getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)

另外,我还有另一个关于如何在库中显示文件夹的查询.

它在画廊中不可见?如何解决这个问题?

directory android android-studio

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

运行 image_picker 时我的新 android 应用程序崩溃(基于 flutter dart)

我正在开发一个使用 Flutter 购物的应用程序,所以我在某个地方堆放东西,我需要帮助。

我使用 pub.dev ( https://pub.dev/packages/image_picker#-readme-tab- )上提供的 image_picker 代码然后我开发了一个页面来在我的应用程序上添加产品,所以当我点击相机图标或图库时图标选择图像应用程序崩溃并打开相机屏幕/画廊屏幕。

我的大问题是;它在模拟器上运行良好,但在真正的手机上,它会崩溃。

我尝试使用 pub.dev 上所示的retrieveLostData(),但我不知道在哪里使用它。

波纹管是我的代码

import 'package:flutter/material.dart';
import 'dart:io';
import 'package:flutter/widgets.dart';

import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';
import 'package:firebase_storage/firebase_storage.dart';

//my imports
import 'package:myshop/main.dart';

class ImageCapture extends StatefulWidget {
  @override
  _ImageCaptureState createState() => _ImageCaptureState();
}

class _ImageCaptureState extends State<ImageCapture> {
  File _imageFile;

  Future<void> _cropImage() async {
    File cropped = await ImageCropper.cropImage(
        sourcePath: _imageFile.path,);

    setState(() {
      _imageFile = cropped ?? _imageFile;
    });
  }
 // pick image from galery or camera
  Future<void> _pickImage(ImageSource source) async …
Run Code Online (Sandbox Code Playgroud)

android dart flutter

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

java.io.FileNotFoundException:/storage/emulated/0/downloadedfilem.jpg(权限被拒绝)

我正在尝试使用Android中的异步任务下载和存储图像,当单击下载按钮获取以下错误.

    W/System.err: java.io.FileNotFoundException: /storage/emulated/0/downloadedfilem.jpg (Permission denied)
12-07 11:01:00.120 28478-28540/myoracle.com.quotes W/System.err:     at java.io.FileOutputStream.open(Native Method)
12-07 11:01:00.120 28478-28540/myoracle.com.quotes W/System.err:     at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
12-07 11:01:00.120 28478-28540/myoracle.com.quotes W/System.err:     at java.io.FileOutputStream.<init>(FileOutputStream.java:108)
12-07 11:01:00.120 28478-28540/myoracle.com.quotes W/System.err:     at myoracle.com.quotes.WallpaperDeatilsActivity$ImageDownload.doInBackground(WallpaperDeatilsActivity.java:113)
12-07 11:01:00.120 28478-28540/myoracle.com.quotes W/System.err:     at myoracle.com.quotes.WallpaperDeatilsActivity$ImageDownload.doInBackground(WallpaperDeatilsActivity.java:91)
Run Code Online (Sandbox Code Playgroud)

WallpaperActivity.java

class ImageDownload extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        int count;
        try {

            String root = Environment.getExternalStorageDirectory().toString();

            System.out.println("Downloading");
            URL url = new URL(params[0]);

            URLConnection conection = url.openConnection();
            conection.connect();
            // getting file length
            int lenghtOfFile = conection.getContentLength();

            // input …
Run Code Online (Sandbox Code Playgroud)

java android

0
推荐指数
1
解决办法
1万
查看次数

未显示WRITE_EXTERNAL_STORAGE的权限对话框

在此处输入图片说明我想使用下载文件DownloadManager。并DownloadManager希望获得WRITE_EXTERNAL_STORAGE许可。我已将WRITE_EXTERNAL_STORAGE许可包含在中AndroidManifest.xml。此外,我尝试在运行时获得此许可。

请求权限后立即调用onRequestPermissionsResult回调。没有显示请求权限弹出窗口。

然而,对价值grantResult[0]onRequestPermissionsResultPERMISSION_DENIED。但是,甚至没有显示“权限弹出窗口”。

我检查这样的许可:

public  boolean isStoragePermissionGranted() {
    if (Build.VERSION.SDK_INT >= 23) {
        if (checkSelfPermission(getContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
                == PackageManager.PERMISSION_GRANTED) {
            Log.v(TAG,"Permission is granted");
            return true;
        } else {

            Log.v(TAG,"Permission is revoked");
            ActivityCompat.requestPermissions(getActivity(), new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_PERMISSION_REQUEST_CODE);
            return false;
        }
    }
    else {
        Log.v(TAG,"Permission is granted");
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是权限请求的回调:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); …
Run Code Online (Sandbox Code Playgroud)

permissions android

0
推荐指数
1
解决办法
360
查看次数

上载经过改造的文件时出现错误(无此文件或目录)

我正在使用android应用,需要将带有文件的请求发布到服务器。我正在retrofit这样做,我也要Multipartapi请求。然后我用它Intent.createChooser来选择文件。

当我enqueue拨打服务电话时,问题就来了。在onFailure我得到这个错误:

E / Upload errorrrrrr :: / document / image:77317(无此文件或目录)

但是,这是我在以下位置获得的uri和文件路径onActivityResult

uri: content://com.android.providers.media.documents/document/image%3A77317

路径: /document/image:77317

我把权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera2.full" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature
    android:name="android.hardware.camera.any"
    android:required="true" />
Run Code Online (Sandbox Code Playgroud)

这是请求:

@Multipart
@POST("upload_document")
Call<UploadDocuments> uploadDocuments(
        @Header("Authorization") String authorization,
        @Part MultipartBody.Part document_name,
        @Part("document_type") RequestBody document_type,
        @Part("fk_id") RequestBody fk_id,
        @Part("type") RequestBody type,
        @Part("certificate_name") RequestBody certificate_name,
        @Part("certificate_description") RequestBody certificate_description,
        @Part("notes") RequestBody notes);
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?谢谢 …

android multipartform-data retrofit

0
推荐指数
1
解决办法
922
查看次数

为什么我无法写入 Android 外部存储?

我正在尝试编写一个 Android 应用程序,除其他外,它需要读取文件并将其写入“外部”存储。

虽然我能够浏览并选择外部存储上的文件夹,但每次尝试访问该文件时,都会收到“权限被拒绝”I/O 异常。

我已在我的应用程序清单中包含以下权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)

我还在 Android 中启用了该应用程序的存储权限。

我正在 Chromebook 上进行开发,因此无法访问模拟器。因此,我通过 USB-C 电缆在手机(Pixel 3)上测试和调试我的应用程序。我还可以生成 APK 并将其旁加载到我的 Chromebook 上,但我无法通过这种方式进行调试。

以下代码示例是我从互联网上收集的。

 public void writeFileExternalStorage(View view) {
        String cashback = "Get 2% cashback on all purchases from xyz \n Get 10% cashback on travel from dhhs shop";
        String state = Environment.getExternalStorageState();
        //external storage availability check
        if (!Environment.MEDIA_MOUNTED.equals(state)) {
            return;
        }
        File file = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DOCUMENTS), filenameExternal);


        FileOutputStream outputStream = null;
        try {
            file.createNewFile();
            //second argument of FileOutputStream …
Run Code Online (Sandbox Code Playgroud)

java android

0
推荐指数
1
解决办法
3981
查看次数