我有一個服務,是假設啓動android音樂應用程序,基本上使音樂應用程序彈出在屏幕上。我試圖這樣做的方式是:是否可以在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確實顯示你好,但由於某種原因,音樂無法啓動。但是當我將它移動到另一個位置時,它確實開始。有沒有辦法做到這一點,或者我必須以另一種方式做到這一點?我希望音樂應用程序在用戶點擊圖標後彈出。這就是爲什麼我做了如果c.equals(「音樂」)的一部分。之所以說它是try裏面是因爲該行:
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
會得到一個錯誤,快速修復是爲它由try/catch語句包圍。
只是一個猜測......「com.android.music.MediaButtonIntenrtReceiver」 - >「com.android.music.MediaButtonIntentReceiver」 – dougcunha
這絕對有可能。如果音樂沒有啓動,會有一些其他問題... – user219882
@Thomas我不想讓音樂開始,我只想讓應用彈出,但不會彈出。 –