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); 

をしようとしているコードであり、これはパッケージ名がpackage="neelay.mediaplayer.beatbox" ある

<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> 

活動を設定するための私のマニフェストのコードです単にアクティビティを簡単に開くことができますアクティビティの名前を呼んでいますが、このケースでは私はuriでアクションを渡す必要があり、これが私が見ることができ、ガイドすることが有用な唯一の方法です。

+0

説明してください、詳細に、何を "それが動作していません"手段。 – 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("neelay.mediaplayer.beatbox", "neelay.mediaplayer.beatbox.ringdroid.RingdroidEditActivity")); 

またはこのような:

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

またはこのような:

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

はい@david wasserあなたは間違いを犯していましたが、これは間違いですが、もう1つのことをintent.setClassName(getApplicationContext()、 "neelay.mediaplayer.tryal.ringdroid.RingdroidEditActivity"); これも私のために働いたそれは完全なansになります – SAVVY

+1

コンポーネントを設定するいくつかの方法があります、あなたはそれらのいずれかを使用することができます。 –

関連する問題