Android小功能集

來源:互聯網
上載者:User

收集的一些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" />


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.