相关疑难解决方法(0)

用户无权访问此对象.Firebase存储android

我是firebase存储的新手.就这样我可以学习它,我做了一个简单的应用程序,有一个按钮和一个ImageView.当我单击按钮时,图像(from drawable)将显示在ImageView上.我还编写了在Firebase上上传图像的代码,但是onAddFailureListener给出消息的异常消息User没有访问此对象的权限.我该怎么办 ?

package com.example.asad.save_photo;

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.net.Uri;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageMetadata;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

import java.io.ByteArrayOutputStream;
import java.io.File;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FirebaseStorage storage = FirebaseStorage.getInstance();

        StorageReference storageRef = storage.getReferenceFromUrl("gs://savephoto-a1cc3.appspot.com");

        final StorageReference mountainsRef = storageRef.child("asad"); …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-storage

22
推荐指数
5
解决办法
3万
查看次数

Android 6(M)权限问题(创建目录不起作用)

我有这个代码用于创建保存图片的目录:

        File storageDir = null;
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {                
            storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "myphoto");
            if (!storageDir.mkdirs()) {                    
                if (!storageDir.exists()){                       
                    Log.d("photo", "failed to create directory");
                    return null;
                }
            }
        }
        return storageDir;
Run Code Online (Sandbox Code Playgroud)

storeDir"/storage/emulated/0/Pictures/myphoto/"在android 6下面返回,在android 6上它返回null.

我有许可 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

buildToolVersion 23 targetSdkVersion 23

怎么修?

android android-camera android-6.0-marshmallow

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

java.lang.RuntimeException:在android.media.MediaRecorder.start(Native Method)启动失败

我正在打电话记录.当我开始记录电话时,不幸的是停止了.&它的错误MediaRecorder启动失败-2147483648.我请告诉我代码中的问题是什么?这是我的代码.

public class incomingcall extends BroadcastReceiver {
Context c;
MediaRecorder recorder;
public incomingcall() {
}
@Override
public void onReceive(Context context, Intent intent) {
    c = context;
    try {
        PhoneStateChangeListener pscl = new PhoneStateChangeListener();
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        tm.listen(pscl, PhoneStateListener.LISTEN_CALL_STATE);
    } catch (Exception e) {
        Log.e("", "", e);
    }
}

private class PhoneStateChangeListener extends PhoneStateListener {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                Toast.makeText(c, "ring", Toast.LENGTH_SHORT).show();
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                startRecording();
                Toast.makeText(c, "offhook", Toast.LENGTH_SHORT).show();
                break; …
Run Code Online (Sandbox Code Playgroud)

android mediarecorder android-mediarecorder android-studio

8
推荐指数
2
解决办法
7993
查看次数

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

从同一应用程序中调用时内容提供者的权限拒绝

我只有一个应用程序。它有一个未导出的内容提供程序(我不希望其他应用程序访问该内容)我一直成功使用该内容提供程序直到现在。

我创建了一个内容观察者来更新TextViewonChange当内容更改并尝试重新查询该内容时,将调用该方法。那时它会收到如下所示的安全异常:

java.lang.SecurityException: Permission Denial: 从 pid=0, uid=1000 读取 org.sil.lcroffline.data.DataProvider uri content://org.sil.lcroffline/users/by_account_name/5555544444 需要导出提供程序,或grantUriPermission()

这是生成它的代码:

@Override
public void onChange(boolean selfChange, Uri uri) {
    Cursor c = null;
    try {
        c = mContentResolver.query(UserEntry.buildUserPhoneUri(mAccount.name), null, null, null, null);
        // do stuff with the data in the cursor
    } finally {
        if (c != null) c.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

URI 看起来格式正确,我认为在内容提供程序中匹配它没有问题。

当从应用程序内以编程方式调用时,上面的代码工作正常,只有当它被观察到的数据的变化触发时才会发生异常。

我怎样才能从同一个应用程序中获得许可拒绝,我该如何解决这个问题?

看清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.sil.lcroffline">

    <!-- To communicate with LCR -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> …
Run Code Online (Sandbox Code Playgroud)

security android android-contentprovider

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