2

次のコードを使用して、現在実行中のアプリを検出しています。しかし、新しいアプリを実行しているとき。パッケージ名がわかりません。「com.hedy.launcher」をトーストしています。コードの何が問題なのですか?

 @Override
          public int onStartCommand(Intent intent,int flags, int startId) {
                // TODO Auto-generated method stub
                super.onStartCommand(intent, flags,startId);
                Toast.makeText(this, "Service running", Toast.LENGTH_SHORT).show();

                handler = new Handler(){

                    @Override
                    public void handleMessage(Message msg) 
                    {
                        // TODO Auto-generated method stub
                        super.handleMessage(msg);
                       // count=count+1;
                       // Toast.makeText(MyService.this, ""+count, Toast.LENGTH_SHORT).show();
                        ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Activity.ACTIVITY_SERVICE);
                        String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
                        Toast.makeText(MyService.this, ""+packageName, Toast.LENGTH_SHORT).show();
                    }

                };



                new Thread(new Runnable(){
                    public void run() {
                    // TODO Auto-generated method stub
                    while(true)
                    {
                       try {
                        Thread.sleep(1000);
                        handler.sendEmptyMessage(0);

                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } 

                    }

                                    }
                }).start();
                return 0;
            }
4

1 に答える 1

1
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();

これは、パッケージ名を抽出している行です。maxNum パラメータを増やしてみてください (1 に設定しました)。

am.getRunningTasks(maxNum) は配列リストを返します。arraylist のすべての内容をチェックして、それらのいずれかで必要なアイテムを取得しているかどうかを確認します

于 2013-04-18T08:02:41.623 に答える