android安装类型,Android 获得已安装的程序并且区分类型
核心代碼:
找到系統已經安裝的應用
List packs = getPackageManager().getInstalledPackages(0);//0 代表所有的包
監聽程序的安裝和卸載
package="org.me.watchinstall">
android:label="@string/app_name">
// 開機就啟動
//安裝
// 卸載
// 這句話一定要加,不然接受不到廣播
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//接收廣播:系統啟動完成后運行程序
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
Intent newIntent = new Intent(context, WatchInstall.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+ ".MainActivity");
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_REMOVED")) {
System.out.println("********************************");
DatabaseHelper dbhelper = new DatabaseHelper();
dbhelper.executeSql("delete from users");
}
}
-----------------------------------------------------------------------------------
區分用戶安裝的應用程序還是系統程序
if((pi.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0&&
(pi.applicationInfo.flags&ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)==0)
介紹一篇講的非常好的blog0
http://blog.csdn.net/qinjuning/article/details/6867806
總結
以上是生活随笔為你收集整理的android安装类型,Android 获得已安装的程序并且区分类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html怎么让表格连接数据库,【前端】如
- 下一篇: android内容提供者_挖穿Andro