Android获取应用信息判断网络连接返回桌面及卸载apk结束进程等的实现思路

获取应用信息

获取应用名
/**
	 * 根据应用包名获取应用名
	 * @param context
	 * @param appPackageName
	 * @return 返回应用名,不存在返回null
	 */
	public static String getAppName(Context context,String appPackageName){
		PackageManager pm = context.getPackageManager();
		String appName=null;
		try {
			appName = pm.getApplicationInfo(appPackageName, 0).loadLabel(pm)
			.toString();
			return appName;
		} catch (NameNotFoundException e) {//不存在
			return appName;//返回null
		}
	}



获取版本号
/**
	 * 根据包名获取版本号
	 * @param appName
	 * @return
	 * @throws NameNotFoundException 
	 */
	private String getVersionName(String packageName) throws NameNotFoundException {
		// TODO Auto-generated method stub
		PackageManager pm=getPackageManager();
		int flags=0;
		PackageInfo  packageInfo =pm.getPackageInfo(packageName, flags);
		String versionName=packageInfo.versionName;//版本名
		int versioncode=packageInfo.versionCode;//版本号
		return versionName;
	}

获取应用权限
/**
	 * 根据包名获取应用所有权限
	 * @param context
	 * @param packageName
	 * @return 返回权限字符串数组
	 * @throws NameNotFoundException
	 */
	public static String[] getAppPermissions(Context context, String packageName) throws NameNotFoundException {
		return context.getPackageManager().getPackageInfo(
					packageName,PackageManager.GET_PERMISSIONS).requestedPermissions;
	}

返回桌面

/**
* 返回到桌面
* 
* @param context
* @return
*/
public static void returnDesktop(Context context) { //
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}




判断网络是否可用,以及是3G还是wifi

/**
	 * 判断网络是否可用
	 * 
	 * @param context
	 * @return true可用,false不可用
	 */
	public static boolean checkTheNetworkConnection(Context context) { //
		ConnectivityManager connectivityManager = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
		if (networkInfo != null && networkInfo.isConnected()) {
			return true;
		} else {
			return false;
		}
	}

/**
	 * 判断手机当前上网用的是sim卡还是wifi <!-- 获取网络信息状态,如当前的网络连接是否有效 --> <uses-permission
	 * android:name="android.permission.ACCESS_NETWORK_STATE"/>
	 * 
	 * @param context
	 *            上下文
	 * @return 返回true是网络类型是wifi网络,返回false网络类型是sim卡网络
	 */
	public static boolean checkSIMorWifi(Context context) {
		ConnectivityManager connectivityManager = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo[] networkInfos = connectivityManager.getAllNetworkInfo();
		boolean isWifiConnect = false;
		for (int i = 0; i < networkInfos.length; i++) {
			if (networkInfos[i].getState() == NetworkInfo.State.CONNECTED) {
				isWifiConnect = false;
			}
			if (networkInfos[i].getType() == connectivityManager.TYPE_WIFI) {
				isWifiConnect = true;
			}
		}
		return isWifiConnect;
	}


卸载程序

/* 调用系统的卸载程序卸载apk */
    public void uninstallApk(String packageName) {
        Uri uri = Uri.parse("package:" + packageName);
        Intent intent = new Intent(Intent.ACTION_DELETE, uri);
        int requestCode=0x11;//卸载标记
		startActivityForResult(intent, requestCode);
    }

结束组件

/*
 * 退出应用总结: finish():结束当前Activity,不会立即释放内存。遵循android内存管理机制。
 * exit():结束当前组件如Activity,并立即释放当前Activity所占资源。
 * killProcess():结束当前组件如Activity,并立即释放当前Activity所占资源。
 * restartPackage():结束整个App,包括service等其它Activity组件。
 */
	/**
	 * killProcess():结束当前组件如Activity,并立即释放当前Activity所占资源。(可用)
	 */
	public static void killProcess() {
		android.os.Process.killProcess(android.os.Process.myPid());
	}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值