ant*_*afe 10 android install broadcast broadcastreceiver
使用Lookout应用程序(https://play.google.com/store/apps/details?id=com.lookout),我看到每次安装或升级应用程序时,它都会自动扫描此应用程序以确保它不是恶意的.
关注Lookout,我编写了一个简单的应用程序,可以在安装或升级每个应用程序时收听广播消息.AFAIK,有一些类型的IntentFilter用于广播消息,它是:
我希望Intent.ACTION_PACKAGE_ADDED
是答案,但它是错误的(ACTION_PACKAGE_ADDED:设备上已安装新的应用程序包.数据包含程序包的名称.请注意,新安装的程序包不接收此广播.)ACTION_PACKAGE_INSTALL
不推荐使用.
谁能告诉我一个更好的方法?欢迎任何帮助.
Akh*_*hil 13
如果您正在安装应用程序A,则设备上的所有其他应用程序将获得该Intent
应用程序A是新安装的应用程序但不是A本身,因为它似乎没有任何用处.如果以后安装或更改其他应用程序,现在A将获得广播.
如果您想了解安装应用程序的时间或其他应用程序的上次安装或更新时间,您可以随时使用PackageManager
:
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String appFile = appInfo.sourceDir;
long installed = new File(appFile).lastModified();
Run Code Online (Sandbox Code Playgroud)
这app.package.name
是您要查找安装时间的应用程序的包名称.如果您想将它用于您的应用,请传入您应用的包名称.
小智 7
你可以尝试这个接收器和许可.(但这似乎只适用于/ system/app)^^"
<receiver
android:name="com.your.receiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12530 次 |
最近记录: |