2011-07-08 27 views
3

アプリケーション名からパッケージ名を取得する方法はありますか?例えばのため 私は名前を使ってアプリケーションを強制終了するには?

am.killBackgroundProcesses(パッケージ名)

または誰かが直接任意の関数を知っているを使用して、それを殺すことができるように、アプリ名が場所であれば、私は、そのパッケージ名com.android.locationを得ることができますアプリ名を使用して削除します。他の提案?

答えて

8

これは実行中のプロセスをすべて取得し、すべてのプロセスを実行して、指定された名前のプロセスを見つけてプロセスを強制終了します。

String nameOfProcess = "location"; 
ActivityManager manager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); 
List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses(); 
for (ActivityManager.RunningAppProcessInfo process : listOfProcesses) 
{ 
    if (process.processName.contains(nameOfProcess)) 
    { 
     // Ends the app 
     manager.restartPackage(process.processName); 
     break; 
    } 
} 

は、このメソッドを使用するには、次の権限が必要になります。

<uses-permission android:name="android.permission.GET_TASKS" /> 
<uses-permission android:name="android.permission.RESTART_PACKAGES"/> 
+0

restartPackageを()は推奨されません。代わりにkillBackgroundProcesses()を使用してください。 – Guian

0

これを行う直接的な方法はありません。すべてのパッケージをスキャンしてアプリケーションラベルを取得し、希望するものを削除することができます。

PackageManager

あなたがこのために使用することができますかなりの数の方法があります。

関連する問題