기본적으로 음악 응용 프로그램을 시작하는 안드로이드 음악 응용 프로그램을 시작한다고 가정합니다. 내가 시도한 방식은 다음과 같습니다.try/catch 내부에서 활동을 시작할 수 있습니까?
public void onStart(Intent intent, int startId)
{
// TODO Auto-generated method stub
super.onStart(intent, startId);
System.out.println("LOGS STARTED");
ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
List l = am.getRunningAppProcesses();
Iterator i = l.iterator();
PackageManager pm = this.getPackageManager();
while(i.hasNext())
{
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
try
{
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
Log.w("LABEL", c.toString());
if(c.equals("Music"))
{
System.out.println("HELLO \n");
Intent in = new Intent();
in.setClassName("com.android.music", "com.android.music.MediaButtonIntentReceiver");
startActivity(in);
}
}
catch(Exception e)
{
//Name Not FOund Exception
}
}
}
logcat은 Hello를 표시하지만 어떤 이유로 음악이 시작되지 않습니다. 그러나 다른 위치로 이동하면 시작됩니다. 이런 방식으로 할 수있는 방법이 있습니까? 아니면 다른 방식으로해야합니까? 사용자가 아이콘을 클릭하면 음악 응용 프로그램이 팝업되기를 원합니다. 이것이 내가 c.equals ("음악") 부분을 만든 이유입니다. 는 시도의 내부에있는 이유는이 선 이유는
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
오류가 발생하는 것입니다 그리고 그것은 시도/catch 문에 둘러싸여하는 빠른 수정했다.
그냥 추측 ... "com.android.music.MediaButtonIntenrtReceiver"-> "com.android.music.MediaButtonIntentReceiver" – dougcunha
확실히 가능합니다. 음악이 시작되지 않으면 몇 가지 다른 문제가있을 것입니다 ... – user219882
@ 토마스 나는 음악을 시작하고 싶지 않아, 나는 단지 팝업 응용 프로그램을 원하지만 팝업되지 않습니다. –