zoukankan      html  css  js  c++  java
  • android桌面快捷方式添加 删除 更新 自动运行

    添加快捷方式  <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>  

       Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

           shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,getString(R.string.app_name));

           shortcutIntent.putExtra("duplicate", false);

           Intent intent = new Intent();

           intent.setComponent(new ComponentName(getPackageName(), MainActivity.class.getName()));

           shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);

           shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));

          sendBroadcast(shortcutIntent);

    public class BootReceiver extends BroadcastReceiver {   

        public void onReceive(Context context, Intent intent) {  

            //接收广播:系统启动完成后运行程序   

            if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {   

                 Intent newIntent = new Intent(context, searchDemo.class);   

                 newIntent.setAction("android.intent.action.MAIN");        

                 newIntent.addCategory("android.intent.category.LAUNCHER");       

                 newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);           

                 context.startActivity(newIntent);   

            }   

            //接收广播:设备上新安装了一个应用程序包后自动启动新安装应用程序。   

            if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {   

                String packageName = intent.getDataString().substring(8);   

                System.out.println("---------------" + packageName);   

                Intent newIntent = new Intent();   

               newIntent.setClassName(packageName,packageName+ ".searchDemo");

               newIntent.setAction("android.intent.action.MAIN");     

               newIntent.addCategory("android.intent.category.LAUNCHER");            

               newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   

               context.startActivity(newIntent);   

            }   

     //接收广播:设备上删除了一个应用程序包。   :这个貌似需要root权限

    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>  

            if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) { 

           String ACTION_UNINSTALL_SHORTCUT ="com.android.launcher.action.UNINSTALL_SHORTCUT";   

         Intent intent3 = new Intent(ACTION_UNINSTALL_SHORTCUT );   

          intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, R.string.app_name);   

         // 要删除的应用程序的ComponentName,即应用程序包名+activity的名字   

         ComponentName comp = new ComponentName("搜索","searchDemo");   

          intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent()   

          .setComponent(comp).setAction("android.intent.action.MAIN"));   

         context.sendBroadcast(intent);  

            }   

        }  

    来自: http://hi.baidu.com/lfcomputer/blog/item/15c31a6649bb6a37ab184c9b.html
  • 相关阅读:
    pytest测试框架的简单应用
    windows下Docker无法正常启动-The system cannot find the file specified
    docker-centos6.9 /etc/rc.d/init.d/functions: No such file or directory解决方法
    All TAP-Windows adapters on this system are currently in use.
    DNS服务器配置named.ca详解
    python单元测试unittest常用断言
    python学习之异常
    python学习之元类
    python学习之property进阶
    python学习之描述符自制property
  • 原文地址:https://www.cnblogs.com/xiaoxiaoboke/p/2093156.html
Copyright © 2011-2022 走看看