2014-02-13 6 views
1

최신 Android 버전에서 눈치 챘을 것처럼 Android에는 갤러리와 사진이라는 2 개의 이미지 갤러리가 있습니다. 앞으로 Google은 갤러리를 비싸게하고 제거하며 사진 라이브러리 만 갖습니다.갤러리 대신 Android Photo에서 업로드 제한

Android API 레벨 18+ ".putExtra (Intent.EXTRA_ALLOW_MULTIPLE, true);"을 사용하여 사용자가 업로드 할 이미지를 여러 개 선택할 수 있도록하고 싶습니다. " 문제는 사용자가 갤러리에서 업로드를 선택하면 기능이 작동하지 않는다는 것입니다 (하나의 그림 만 선택할 수 있음).

앱이 Android Photo의 앱을 통해 자동으로 업로드를 시도하도록하려면 어떻게해야합니까?

이 지금까지 내 코드는 다음과 같습니다

galerijButton.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
     if(Build.VERSION.SDK_INT >= 18){ 
      photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
     } 
     photoPickerIntent.setType("image/*"); 
     startActivityForResult(photoPickerIntent, SELECT_PHOTO); 
    } 
}); 

..

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case SELECT_PHOTO: 
     if(resultCode == RESULT_OK){ 
      if(imageReturnedIntent.getData() != null){ 
       //If uploaded with Android Gallery (max 1 image) 
       Uri selectedImage = imageReturnedIntent.getData(); 
       InputStream imageStream; 
       try { 
        imageStream = getContentResolver().openInputStream(selectedImage); 
        Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream); 
        photos.add(yourSelectedImage); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } 
      } else { 
       //If uploaded with the new Android Photos gallery 
       ClipData clipData = imageReturnedIntent.getClipData(); 
       for(int i = 0; i < clipData.getItemCount(); i++){ 
        clipData.getItemAt(i); 
        // more code logic 
       } 
      } 
     } 
    break; 

답변

0

당신은 전화의 사진 응용 프로그램에 대한 패키지 이름을 가지고 행동과 의도를 사용할 수 있습니다. com.google.exactnameofphotoapp의 예. 그런 다음 원하는 응용 프로그램을 실행합니다.

그리고 새로운 API 기능에 대한

if(Build.VERSION.SDK_INT >= 18){ 
... 
} 

를 사용합니다.

+0

안드로이드 매니페스트에서이 작업을 수행해야합니까? 또는 Intent 객체에 플래그 또는 무언가를 부여 하시겠습니까? –

+0

대신 Intent photoPickerIntent = 새로운 인 텐트 (Intent.ACTION_PICK); try 인 텐트 photoPickerIntent = 새 인 텐트 (com.google.exactnameofphotoapp.neededaction). 이 작업에는 애플리케이션에없는 것을 매니페스트 앱에 포함합니다. –

+0

정확한 이름은 어디에서 찾을 수 있습니까? –