0

缓存可以通过 AIDL 清理,forcestop 功能呢?

我试过了,但失败了。以前有人这样做过吗?

在我的包中添加aidl文件:

IActivityManager.aidl
package android.app; 
oneway interface IActivityManager { 
     void forceStopPackage(String packageName);
}

实现 IActivityManager,但我无法获取它的对象:

import android.app.IActivityManager;
class ActivityManagerProxy implements IActivityManager
{

    public ActivityManagerProxy(IBinder remote)
    {
        mRemote = remote;
    }

    public IBinder asBinder()
    {
        return mRemote;
    }

    public void forceStopPackage(String packageName) throws RemoteException
    {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
        data.writeInterfaceToken(descriptor);
        data.writeString(packageName);
        mRemote.transact(FORCE_STOP_PACKAGE_TRANSACTION, data, reply, 0);
        reply.readException();
        data.recycle();
        reply.recycle();
    }

    private IBinder mRemote;
}
4

1 回答 1

1

这是不可能的,因为在自己的进程中运行的 ActivityManagerService 只是检查了 IPC 调用者的权限。您必须拥有FORCE_STOP_PACKAGES调用此方法的权限。

于 2012-12-13T17:44:56.183 回答