3

조치 및 URI를 전달해야하는 라이브러리를 사용하려고하며 패키지 이름을 사용해야하는 활동을 열려고하지만 패키지를 변경해야합니다. 이 모든 이에서 작동하지 않는 이름 것은 내가패키지 이름을 사용하여 활동을 시작할 수 없습니다.

Intent intent = new Intent(Intent.ACTION_EDIT, Uri.parse(filename)); 
     intent.putExtra("was_get_content_intent", mWasGetContentIntent); 
     intent.setClassName("neelay.mediaplayer.beatbox.ringdroid", "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity"); 
     startActivityForResult(intent, REQUEST_CODE_EDIT); 

을 시도하고 코드이며,이 활동

<activity 
     android:name=".ringdroid.RingdroidSelectActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Holo"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.OPENABLE" /> 

      <data android:mimeType="audio/*" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".ringdroid.RingdroidEditActivity" 
     android:configChanges="orientation|screenSize|keyboardHidden" 
     android:hardwareAccelerated="true" 
     android:windowSoftInputMode="adjustResize"> 
     <intent-filter android:label="@string/edit_intent"> 
      <action android:name="android.intent.action.EDIT" /> 

      <data android:mimeType="audio/*" /> 
     </intent-filter> 
    </activity> 
을 설정하기위한 내 매니페스트 코드

패키지 이름은 나는 그것이 알고 package="neelay.mediaplayer.beatbox" 입니다 그냥 활동을 쉽게 열어 활동의 이름을 부르지 만,이 경우에는 uri로 조치를 전달해야하며 이것이 내가 볼 수 있고 도움이 될 수있는 유일한 방법입니다.

+0

상세하게 설명해주십시오 :

intent.setComponent(new ComponentName(this, "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity")); 

또는 같은

가 :
intent.setComponent(new ComponentName("neelay.mediaplayer.beatbox", "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity")); 

또는 같은

방법. – CommonsWare

+0

나는이 개념을 startActivity가 호출되지 않으므로 아무 것도하지 않는다고 말합니다. – SAVVY

+0

시작하려는 활동이 다른 응용 프로그램 또는 동일한 응용 프로그램에 있습니까? – Shivam

답변

1

패키지 이름이 "neelay.mediaplayer.beatbox"라고하셨습니다. 이 경우이를 변경해야

intent.setClassName("neelay.mediaplayer.beatbox.ringdroid", "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity"); 

이에 다음 Component를 설정하는 방법에는 여러가지가 있기 때문에

intent.setClassName("neelay.mediaplayer.beatbox", "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity"); 

, 당신은 또한 다음과 같은 방법 중 하나를 사용할 수 있습니다 :

:
intent.setClassName(this, "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity"); 

또는 같은

intent.setClassName(getApplicationContext(), "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity"); 

또는 같은: 무엇을 "이 작동하지 않습니다"

intent.setComponent(new ComponentName(getApplicationContext(), "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity")); 
+0

예 @david wasser 당신이 옳았는데 실수 한 것이지만 intent.setClassName (getApplicationContext(), "neelay.mediaplayer.tryal.ringdroid.RingdroidEditActivity"); 이 하나도 나를 위해 일한 그때 그것은 완전한 ans 될 것입니다 – SAVVY

+1

구성 요소를 설정하는 몇 가지 방법이 있습니다, 당신은 그들 중 하나를 사용할 수 있습니다. –

관련 문제