2016-06-23 3 views
1

Bitmojiアプリでbitmojiを選択すると、Androidのインテントを使用してアプリを表示しています。それは私のアプリを起動し、ImageViewにbitmojiを表示する必要があります。androidのインテントからImageViewに表示するbitmoji画像を取得できません

私のアプリは正常に起動しますが、imageViewは空白です。

私は次のエラーを取得する:ここで

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.bitstrips.imoji/cache/bitmoji-1441479250.png: open failed: EACCES (Permission denied)

は私MainActivityコードは次のとおりです。

public class MainActivity extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 

private Bitmap bitmap; 
private ImageView mImageView; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    mImageView = (ImageView) findViewById(R.id.imageView); 

    if (Intent.ACTION_SEND.equals(action) && type != null) { 
     if ("text/plain".equals(type)) { 
      handleSendText(intent); // Handle text being sent 
     } else if (type.startsWith("image/")) { 
      handleSendImage(intent); // Handle single image being sent 
     } 
    } 

} 

void handleSendImage(Intent intent) { 
    Uri imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM); 
    Context context = getApplicationContext(); 

    String selectedImagePath; 
    selectedImagePath = getPath(imageUri); 
    Toast.makeText(context, selectedImagePath, Toast.LENGTH_LONG).show(); 
    if(imageUri!=null) { 
     new imageWorkerTask().execute(selectedImagePath); 
    } 
} 

public String getPath(Uri uri) 
{ 
    /* 
    Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
    cursor.moveToFirst(); 
    int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
    return cursor.getString(idx); 
    */ 
    return uri.getPath(); 
} 

class imageWorkerTask extends AsyncTask<String, Void, Bitmap> { 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    Resources resources = getResources(); 

    int imageHeight = options.outHeight; 
    int imageWidth = options.outWidth; 
    String imageType = options.outMimeType; 


    @Override 
    protected Bitmap doInBackground(String... paths) { 
     return decodeBitmapFromFile(paths[0]); 
    } 

    @Override 
    protected void onPostExecute(Bitmap result) { 

     mImageView.setImageBitmap(result); 
    } 
} 

public static Bitmap decodeBitmapFromFile(String path) { 

    // First decode with inJustDecodeBounds=true to check dimensions 
    final BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inJustDecodeBounds = true; 

    // Calculate inSampleSize 
    //options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); 
} 
    // Decode bitmap with inSampleSize set 
    options.inJustDecodeBounds = false; 

    return BitmapFactory.decodeFile(path, options); 
} 
+0

を読み取り許可を追加する必要がありますリソース(私の描画可能なフォルダから)からimageViewへのイメージ。特に、別のアプリ(bitmoji)から画像を取得しようとしているときに、imageViewが更新されていないときです。 – Alex

答えて

0

あなたは、私がロードすることができる午前のAndroidManifest.xml

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
+0

AndroidManifest.xmlには、他にも問題があるはずです... – Alex

関連する問題