Android小功能集
16lz
2021-12-04
收集的一些Android小功能集
避免我们的应用出现在最近任务栏(注:不是任务管理器)中出现
<!-- 添加属性 -->android:excludeFromRecents="true"
获取手机上的安装的所有Home类别应用
//private List<String> getHomes() { // List<String> packages = new ArrayList<String>(); // PackageManager packageManager = mservice.getPackageManager();// Intent intent = new Intent(Intent.ACTION_MAIN); // intent.addCategory(Intent.CATEGORY_HOME); // List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent, // PackageManager.MATCH_DEFAULT_ONLY);// for(ResolveInfo info : resolveInfo){// packages.add(info.activityInfo.packageName); // } // return packages; //}
监听Home键,有需要的时候可以用用
HomeKeyEventBroadCastReceiver receiver = new HomeKeyEventBroadCastReceiver();registerReceiver(receiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
public class HomeKeyEventBroadCastReceiver extends BroadcastReceiver{static final String TAG = "HomeKeyEventBroadCastReceiver";static final String SYSTEM_REASON = "reason"; static final String SYSTEM_HOME_KEY = "homekey";//home key static final String SYSTEM_RECENT_APPS = "recentapps";//long home key @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { String reason = intent.getStringExtra(SYSTEM_REASON); if (reason != null) { if (reason.equals(SYSTEM_HOME_KEY)) { // home key处理点 String pk = getCurrentPk(context); Log.i(TAG, "pk:"+pk); Log.i(TAG, "HOME KEY"); } else if (reason.equals(SYSTEM_RECENT_APPS)) { // long home key处理点 Log.i(TAG, "LONG HOME KEY"); } } } } private String getCurrentPk(Context context){ ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> rti = mActivityManager.getRunningTasks(1); return rti.get(0).topActivity.getPackageName();}}
在新版本中创建一个Receiver接收手机应用的安装和卸载(可以监听到旧版本的卸载)
publicclass PkInstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED" )) { String packageName = intent.getDataString().substring(8); System.out.println( "安装:" +packageName + "包名的程序" ); } //接收卸载广播 if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED" )) { String packageName = intent.getDataString().substring(8); System.out.println( "卸载:" + packageName + "包名的程序" ); Intent newIntent =new Intent(); newIntent.setClassName(packageName,packageName+".AutoStartProTestActivity" ); newIntent.setAction("android.intent.action.MAIN"); newIntent.addCategory("android.intent.category.LAUNCHER" ); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(newIntent); } }}AndroidManifest.xml进行配置 //receiver <receiver android:name="com.justsy.lpi.receiver.PkInstallReceiver" android:label=" @string/app_name"> <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> //permission <uses-permission android:name= "android.permission.RESTART_PACKAGES" /> <uses-permission android:name= "android.permission.RECEIVE_BOOT_COMPLETED" />
更多相关文章
- Pycharm安装PyQt5的详细教程
- Android(安卓)拖拽
- ANDROID包管理服务机制 .
- Android(安卓)slidingmenu详解 优化侧滑
- android:installLocation简析
- android播放swf文件
- Android(安卓)Studio下载安装使用教程
- 如何搭建Android的开发环境->安装虚拟机篇(一)
- android 默认签名 debug签名