android Intent类
16lz
2022-05-24
1)利用Inent监听应用程序的安装、替换、删除等
与包相关的Intent:
Intent.ACTION_PACKAGE_INSTALL
Intent.ACTION_PACKAGE_ADDED
Intent.ACTION_PACKAGE_REPLACED
Intent.ACTION_PACKAGE_REMOVED
Intent.ACTION_PACKAGE_CHANGED
Intent.ACTION_PACKAGE_RESTARTED
Intent.ACTION_PACKAGE_DATA_CLEARED
首先定义一个Broadcast类——HandlePackageAction,代码如下:
[java] view plain copy print ?- publicclassHandlePackageActionextendsBroadcastReceiver{
- publicvoidonReceive(Contextcontext,Intentintent){
- Stringaction=intent.getAction();
- if(Intent.ACTION_PACKAGE_ADDED.equals(action))
- {
- Toast.makeText(context,"有应用被添加",Toast.LENGTH_LONG).show();
- }
- elseif(Intent.ACTION_PACKAGE_REMOVED.equals(action))
- {
- Toast.makeText(context,"有应用被删除",Toast.LENGTH_LONG).show();
- }
- elseif(Intent.ACTION_PACKAGE_CHANGED.equals(action))
- {
- Toast.makeText(context,"有应用被改变",Toast.LENGTH_LONG).show();
- }
- elseif(Intent.ACTION_PACKAGE_REPLACED.equals(action))
- {
- Toast.makeText(context,"有应用被替换",Toast.LENGTH_LONG).show();
- }
- elseif(Intent.ACTION_PACKAGE_RESTARTED.equals(action))
- {
- Toast.makeText(context,"有应用被重启",Toast.LENGTH_LONG).show();
- }
- elseif(Intent.ACTION_PACKAGE_INSTALL.equals(action))
- {
- Toast.makeText(context,"有应用被安装",Toast.LENGTH_LONG).show();
- }
- }
- }
然后在AndroidManifest.xml中注册HandlePackageAction,内容如下:
- <receiverandroid:name=".HandlePackageAction"
- android:enabled="true">
- <intent-filter>
- <actionandroid:name="android.intent.action.PACKAGE_ADDED"></action>
- <actionandroid:name="android.intent.action.PACKAGE_CHANGED"></action>
- <actionandroid:name="android.intent.action.PACKAGE_REMOVED"></action>
- <actionandroid:name="android.intent.action.PACKAGE_REPLACED"></action>
- <actionandroid:name="android.intent.action.PACKAGE_RESTARTED"></action>
- <actionandroid:name="android.intent.action.PACKAGE_INSTALL"></action>
- <dataandroid:scheme="package"></data>
- </intent-filter>
- </receiver>
2)安装、卸载应用程序
- Intentintent=newIntent(Intent.ACTION_VIEW);
- intent.setDataAndType(Uri.fromFile(newFile("/sdcard/Test.apk")),
- "application/vnd.android.package-archive");
- startActivity(intent);//安装程序
- UripackageURI=Uri.parse("package:com.ygc.Test");
- IntentuninstallIntent=newIntent(Intent.ACTION_DELETE,packageURI);
- startActivity(uninstallIntent);//正常卸载程序
3)开机启动Activity
首先定义一个Broadcast类——HandleBootComplete,代码如下:
[java] view plain copy print ?- publicclassHandleBootCompleteextendsBroadcastReceiver{
- publicvoidonReceive(Contextcontext,Intentintent){
- IntentstartActivityIntent=newIntent(context,DrawText.class);
- startActivityIntent.setAction(Intent.ACTION_MAIN);
- startActivityIntent.addCategory(Intent.CATEGORY_LAUNCHER);
- startActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(startActivityIntent);
- }
- }
然后在AndroidManifest.xml中注册HandleBootComplete,内容如下:
- <!--添加权限-->
- <uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
- <receiverandroid:name="HandleBootComplete"android:enabled="true">
- <intent-filter>
- <actionandroid:name="android.intent.action.BOOT_COMPLETED"/>
- <categoryandroid:name="android.intent.category.HOME"/>
- </intent-filter>
更多相关文章
- Appium学习第一个测试脚本
- Android实现应用下载并自动安装apk包
- 编写android拨打电话apk应用实例代码
- android调用邮件应用发送email
- android 应用异常可以引起android系统崩溃重启
- Android(安卓)如何获取最顶端的Top Activity
- android 锁屏
- android使用finish()和System.exit()退出应用程序的理解
- Android测试框架