2016-04-17 12 views
0

私は自分のモバイルを根付いており、必要な権限を付与することで自分のアプリケーションをシステムアプリケーションとして作成しました。Androidのシステムアプリケーションから他のアプリケーションを削除する方法

activityManager.killBackgroundProcesses(packageName); 
android.os.Process.killProcess(pid); 

権限を与えることによって:今、私が使って試してみました

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> 
<uses-permission android:name="android.permission.GET_TASKS"/> 

私のアプリケーションは、まだ他のアプリケーションを終了することができません。私は自分のアプリケーションから何をアプリにするかを試みました。上記のコードは何のエラーもなく実行されています。私のアプリケーションはシステムアプリケーションですが(私も自分のアプリケーションをユーザーアプリケーションとして試しましたが)、まだLinuxカーネルは他のアプリケーションを殺すための呼び出しを無視しています。

他のアプリケーションを自分のアプリケーションから削除するのは良いことではないことは知っていますが、他のアプリケーションを強制終了するために他に何が必要なのかを知りたいと思います。

答えて

1

android.os.Process.killProcess(pid); は、システムがそのPIDに基づいてプロセスを強制終了するように要求することができますが、カーネルは実際にはどのPIDを実際に終了できるのかについての標準的な制限を課します。通常、これは呼び出し元のパッケージ/アプリケーションを実行するプロセスと、そのアプリケーションによって作成された追加のプロセスのみを意味します。

あなたは、コマンドラインを介してサードパーティのアプリを殺す試すことができます。

adb shell am force-stop com.my.app.package 

そしてもちろん、あなたはまた、Javaからこのコマンドを実行することができます。

+0

以下のコードを使用して、javaでそのコマンドを実行しました。 public void RunAsRoot(String cmd){ Process p; try { \t p = Runtime.getRuntime()。exec( "su"); DataOutputStream os =新しいDataOutputStream(p.getOutputStream()); os.writeBytes(cmd); os.writeBytes( "exit \ n"); os.flush(); \t \t}キャッチ(例外e) \t \t { \t \t \t Log.d( "コマンドを実行しない"、e.getMessage())。 \t \t \t Toast.makeText(これは、「アプリケーションを強制終了している間に何か問題が発生しました」、Toast.LENGTH_LONG).show(); \t } 実行中ですが、現在実行中のアプリケーションを表示するコードでも同じリストが表示されます。 –

+0

他のアプリケーションを強制終了する権限がないという例外はありません。 –

関連する問題