安卓 如何判断应用是首次安装

比如那些广告应用,比如有米,他们是怎么判断应用是首次安装才有效的?... 比如那些广告应用,比如有米,他们是怎么判断 应用是首次安装才有效的? 展开
 我来答
QQMSD8
推荐于2016-07-20 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
Android系统中,判断应用是否首次安装,只能在服务器去判断,前台只能判断有无安装,判断有以下方式:
1.根据包名判断,以下为判断代码:
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}

2. 根据Intent判断,以下为判断代码:
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() > 0){
return true;
}
return false;
}
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName)) return false;
try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
}
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager()
.queryIntentActivities(intent, 0);
if (list.size() > 0) {
return true;
}
return false;
}
匿名用户
2014-03-22
展开全部
一般的app是在SharedPreference里面保存当前的版本号。第一次安装时,SharedPreference里面是空的,这样就检查出来了。版本升级后,可以比较SharedPreference里面的版本号,如果不相等就是新版本了。
广告应用,估计也是差不多,比如弄一个文件什么的。
追问
那我想知道 那个文件在哪里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
速度轻机枪
2015-08-18 · TA获得超过1525个赞
知道小有建树答主
回答量:676
采纳率:33%
帮助的人:248万
展开全部
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

/**
* 判断应用是否已安装
*
* @param context
* @param packageName
* @return
*/
private boolean isInstalled(Context context, String packageName) {
boolean hasInstalled = false;
PackageManager pm = context.getPackageManager();
List<PackageInfo> list = pm
.getInstalledPackages(PackageManager.PERMISSION_GRANTED);
for (PackageInfo p : list) {
if (packageName != null && packageName.equals(p.packageName)) {
hasInstalled = true;
break;
}
}
return hasInstalled;
}

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

/**
* 获取文件安装的Intent
*
* @param file
* @return
*/
private Intent getFileIntent(File file) {
Uri uri = Uri.fromFile(file);
String type = "application/vnd.android.package-archive";
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(uri, type);
return intent;
}

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

/**
* 判断应用是否正在运行
*
* @param context
* @param packageName
* @return
*/
private boolean isRunning(Context context, String packageName) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> list = am.getRunningAppProcesses();
for (RunningAppProcessInfo appProcess : list) {
String processName = appProcess.processName;
if (processName != null && processName.equals(packageName)) {
return true;
}
}
return false;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曾彬薛平灵
2019-10-07 · TA获得超过1112个赞
知道小有建树答主
回答量:1986
采纳率:100%
帮助的人:9.2万
展开全部
刷机可以解决一切,建议去实体店购买,带原厂包装的,保修卡说明书等。如果已经买了,那就别在网上查如何验证它是否是新的了,结果是新的你不放心,不是新的用着心里膈应。用着不卡,没毛病就ok了!就是新的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古龙书竹0hR
2014-03-22 · TA获得超过652个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:309万
展开全部
会记录你的IMEI码的
更多追问追答
追问
就是远程保存吗
追答
你用手机都得联网的吧?安装的时候有一个权限叫“读取手机状态和身份”,就是这个了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式