我是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) 我有这个代码用于创建保存图片的目录:
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
怎么修?
我正在打电话记录.当我开始记录电话时,不幸的是停止了.&它的错误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) 如何在MIUI 8+中以编程方式获取读取"服务SMS"的权限.

我只有一个应用程序。它有一个未导出的内容提供程序(我不希望其他应用程序访问该内容)我一直成功使用该内容提供程序直到现在。
我创建了一个内容观察者来更新TextView。onChange当内容更改并尝试重新查询该内容时,将调用该方法。那时它会收到如下所示的安全异常:
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)