- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章java实现静默安装apk由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
静默安装就是偷偷的把一个应用安装到手机上,就是屏蔽确认框,通过反射 。
只能写个主要的代码,这个是在linux编译用到,因为静默安装需要调用系统服务,在源码下编译,我也是搞了好久 。
InstallActivity.java 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
package
com.smart.Installback;
import
java.io.File;
//import com.android.packageinstaller.R;
import
android.app.Activity;
import
android.os.Bundle;
import
android.content.Intent;
import
android.content.pm.PackageInfo;
import
android.content.pm.PackageManager;
import
android.content.pm.PackageManager.NameNotFoundException;
import
android.content.pm.IPackageInstallObserver;
import
android.content.res.Resources;
import
android.graphics.drawable.Drawable;
import
android.net.Uri;
import
android.os.Environment;
import
android.os.Handler;
import
android.os.Message;
import
android.util.Log;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.ProgressBar;
import
android.widget.TextView;
public
class
InstallActivity
extends
Activity {
/** Called when the activity is first created. */
private
Button btn=
null
;
private
Button btn2=
null
;
private
final
int
INSTALL_COMPLETE =
1
;
final
static
int
SUCCEEDED =
1
;
final
static
int
FAILED =
0
;
public
void
onCreate(Bundle savedInstanceState){
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
String fileName = Environment.getExternalStorageDirectory() +
"/UC.apk"
;
Uri uri = Uri.fromFile(
new
File(fileName));
int
installFlags =
0
;
PackageManager pm = getPackageManager();
try
{
PackageInfo pi = pm.getPackageInfo(
"com.uc.browser"
,
PackageManager.GET_UNINSTALLED_PACKAGES);
if
(pi !=
null
) {
installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
}
}
catch
(NameNotFoundException e) {
}
// String installerPackageName = getIntent().getStringExtra(
// Intent.EXTRA_INSTALLER_PACKAGE_NAME);
PackageInstallObserver observer =
new
PackageInstallObserver();
pm.installPackage(uri, observer, installFlags,
"com.uc.browser"
);
}
private
OnClickListener listener2=
new
OnClickListener(){
public
void
onClick(View v) {
String fileName = Environment.getExternalStorageDirectory() +
"/UC.apk"
; ivate
Uri uri = Uri.fromFile(
new
File(fileName));
int
installFlags =
0
;
PackageManager pm = getPackageManager();
try
{
PackageInfo pi = pm.getPackageInfo(
"com.uc.browser"
,
PackageManager.GET_UNINSTALLED_PACKAGES);
if
(pi !=
null
) {
installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
}
}
catch
(NameNotFoundException e) {
}
// String installerPackageName = getIntent().getStringExtra(
// Intent.EXTRA_INSTALLER_PACKAGE_NAME);
PackageInstallObserver observer =
new
PackageInstallObserver();
pm.installPackage(uri, observer, installFlags,
"com.uc.browser"
);
}
};
class
PackageInstallObserver
extends
IPackageInstallObserver.Stub {
public
void
packageInstalled(String packageName,
int
returnCode) {
Message msg = mHandler.obtainMessage(INSTALL_COMPLETE);
msg.arg1 = returnCode;
mHandler.sendMessage(msg);
}
};
private
Handler mHandler =
new
Handler() {
public
void
handleMessage(Message msg) {
switch
(msg.what) {
case
INSTALL_COMPLETE:
// Update the status text
// Show the ok button
int
centerTextLabel;
Drawable centerTextDrawable =
null
;
if
(msg.arg1 == SUCCEEDED) {
}
else
{}
if
(centerTextDrawable !=
null
) {}
break
;
default
:
break
;
}
}
};
}
|
main.xml 。
1
2
3
4
5
6
7
8
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
</
LinearLayout
>
|
以上所述就是本文的全部内容了,希望大家能够喜欢.
最后此篇关于java实现静默安装apk的文章就讲到这里了,如果你想了解更多关于java实现静默安装apk的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我对 JavaScript/jQuery 和 Web 开发有点陌生。我当前的项目是为网站建立一个小型聊天室。一切正常,但我有一个问题: 如何将数据从客户端传输到服务器并返回(例如通过 javascri
warn 4 与 print STDERR 4 有何不同? perl -e 'local *STDERR; warn 4' (输出仍然转到 STDERR ) perl -e 'local *STDER
所以在面对可怕的javax.faces.application.ViewExpiredException之后,我不得不在互联网上寻找合适的解决方案。幸运的是,这些解决方案随时可用,我继续采用了 Omn
我正在尝试使用 Spring Modules 项目中的声明性缓存。 它不起作用,即。似乎没有任何东西被缓存。 这是我的配置:
我正在实现以下教程:Speech To Text 我正在使用 AVAudioEngine 和 SFSpeechRecognizer 录制音频实现语音到文本。此处教程使用以下方法将语音引导至文本一个开始
我有一个文本(有多行),需要将其放入 wxPython TextCtrl 中。 问题是其中一些行包含无法打印的字符。 我的解决方案是使用 AppendText,并 try catch 有问题的行。 当
有没有办法直接从 Angular/客户端应用程序使用“用户名”和“密码”登录? 例如像这样的东西? Keycloak.init({username: 'guest', password: 'abc'}
我这样执行 GET 请求: http://www.smurf.com/path/?var=val 这显示在用户的 URL 中。我当然在几乎每个主要网站上都看到了这一点。 但我只是好奇是否有办法绕过它。
假设我有两个相互硬链接(hard link)的文件: -rw-rw-r-- 2 mparrott grp 5 Jul 28 09:38 bar -rw-rw-r-- 2 mparrott grp 5
我想在 android 4+ 中以编程方式(直接)添加日历事件。这可以在模拟器上测试吗?我没有安卓手机。一些示例代码将不胜感激。我阅读了 android 开发人员的日历提供程序,但我很困惑。如何将事件
我正在向我的工作簿添加一个新工作表 Application.ScreenUpdating = False SheetExists = False For Each WS In Worksheets
我正在 Excel 中的 VBA 中进行一些网页解析;我是 MSHTML 来下载和解析网页。但是,在某些站点上,会弹出一个对话框。它工作正常;但是,我想知道是否有办法禁用它或可能绕过它。感谢您的时间。
有没有办法使用谷歌的 firebase 发送一个无声的 APNS? 似乎如果应用程序在后台,它总是会向用户显示通知。 谢谢? 最佳答案 您可以使用 FCM 服务器 API 发送静默 APNS 消息 h
我有一个 Powershell 脚本来放松机器上的执行策略,本质上是运行: Set-ExecutionPolicy Unrestricted -Force 由于 ExecutionPolicy 在机器
我有一个 Powershell 脚本,用于将我们的生产数据库复制到我们的测试环境以及相关的清理事件。我想清理为用户输出到控制台的信息,但在清理从 Az.sql 命令中收到的错误消息时遇到了问题。 我的
这是我当前的 Facebook 应用程序登录流程(有关解释,请参阅 this answer)。 logout() 和 login() 是在用户注销或登录时呈现页面的虚拟函数。 window.fbAsy
我有一个 React Native 应用程序,我正在尝试将静默的 iOS 推送通知发送到 JavaScript 中的处理程序。 我看到的行为是 AppDelegate 中的 didReceiveRem
我正在使用数据通知来更新我的应用程序状态,它在 Android 上运行完美,但我无法在 IOS 上接收到任何数据消息,甚至没有触发 onMessage 监听器。 我正在使用这些: firebase_c
我知道较新的 GCC 版本引入了可能错误的字符串操作“stringop-truncation”的警告 这是我可以轻松触发此警告的示例代码: $ cat strncpy-warning.cxx #inc
标题基本上描述了它。 我检查过的事情: 验证了远程 Powershell session 中的用户名(以确保事情正在以我期望的权限执行) 检查了所描述文件的权限。预期用户拥有文件的完全控制权 删除了
我是一名优秀的程序员,十分优秀!