2011-11-07 5 views
0

audio/* mimetype action.View 인 텐트를 캡처하고 다른 애플리케이션 (사용자가 선택한)으로 전달하려고합니다. 문제는 파일 관리자가 파일을 열었을 때 (선택한 앱 대화 상자를 통해) 내 액티비티를 선택할 수 있지만 그 의도를 다른 액티비티 (동일한 액티비티)로 전달할 수 없다는 것입니다. I는 단지 무한 루프를 얻기Android에서 인 텐트 전송

@Override 
protected void onStart() { 
    super.onStart(); 
    setContentView(R.layout.main); 
    Intent intent = getIntent(); 
    startActivity(intent); 
} 

:

 <activity 
     android:label="@string/app_name" 
     android:name=".TestMimeActivity" > 
     <intent-filter > 
      <action android:name="android.intent.action.VIEW" /> 

      <data android:mimeType="audio/*" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

이 활동에 ONSTART 코드이다 이 활동에 관한 매니페스트 부분이다. 선호하는 활동 앱 선택 대화 상자를 열어보고 싶습니다 (선호하는 앱이 없어도 전체 목록을 허용 할 수 있음). 가능한가? 이것을 어떻게 할 수 있습니까?

감사 Tobia Loschiavo

의견에서
+0

약간 혼란 스럽 습니다만, 의도 한 필터를 사용하여 원하는 것을 수행해야합니다. 인 텐트 필터가 다른 정보를 다른 활동으로 라우트하려면 자체 필터가 필요합니다. – Bobbake4

+0

파일 관리자에서 파일을 열고 싶다면 audio/* mimetype에 action.VIEW 인 텐트가 사용 된 다음 선택한 대화 상자와 내 활동에서 선택한 활동을 열려고합니다. 선택한 앱을 다시 열고 싶습니다. 대화 상자에서 동일한 의도를 다시 보냅니다 (예 : 음악 앱을 이번에 선택). 액티비티를 시작하면서, 내가 선택한 앱 대화 상자를 다시 가질 것으로 예상했지만 대신 무한 루프가 있습니다. – Matroska

답변

2

난 당신이 createChooser 찾고 생각보다. 다음과 같이 코드를 수정해야합니다.

Intent intent = getIntent(); 
    startActivity(Intent.createChooser(intent, "Select application")); 
+0

고마워! 내 앱을 목록에서 제외시킬 수도 있는지 알고 계십니까? 나는 또한 미리 정의 된 플래그가 더 이상 존재하지 않는다는 것을 보았습니다 ... 그것을 가질 수 있습니까? – Matroska

+0

흠 나는 그렇게 생각하지는 않지만 가능할 수도 있습니다. 어쩌면 새로운 질문으로 게시 할 수 있습니다. 미리 정의 된 플래그는 무엇을 의미합니까? 메시지? – Bobbake4

+0

아니요, 가능하지 않습니다. 앱리스트가있는 사용자 정의 선택기 대화 상자 (내 항목과 하단의 체크 박스 제외)를 다시 만들고 선택을 어딘가에 저장해야합니다. 나는 선택 후에 생각이 암시 적이어야한다고 생각한다. 나는 이것이 해결책이라고 생각한다. – Matroska