Android 插入壁式充电器时自动启动
我正在开发一个Android应用程序,它需要3件事:-Android 插入壁式充电器时自动启动,android,su,Android,Su,我正在开发一个Android应用程序,它需要3件事:- 在特定时间内保持应用程序运行,然后手机将关闭(工作正常) 当手机从插座充电时,我希望手机在不按任何电源按钮的情况下自动通电。(不使用墙上的插座,但通过笔记本电脑连接到USB电缆时工作)。 启动后,我的应用程序应自动开始工作(工作正常) 你必须知道:- 我的手机是Moto E(根),希望完成第二步。尝试了一些代码,但在moto E上不起作用。 当与USB连接时,它给出2作为响应,当与墙壁插座充电器连接时,它显示1 任何帮助都将不胜感激 注意:
fastboot oem关闭模式收费0
使用Nexus 7但不使用Moto e
2-Moto e在连接到路由器(USB加密狗端口)时启动。我认为应该有功率传感器,如果你能在这段代码中添加,我相信它会工作
public class Main extends Activity {
private SensorManager mSensorManager;
private PowerManager mPowerManager;
private WindowManager mWindowManager;
private WakeLock mWakeLock;
private Button button;
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
// Get an instance of the SensorManager
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// Get an instance of the PowerManager
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
// Get an instance of the WindowManager
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.getDefaultDisplay();
// Create a bright wake lock
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass()
.getName());
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.textView1);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(mButtonStopListener);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onCreate", e.getMessage());
}
} // END onCreate
View.OnClickListener mButtonStopListener = new OnClickListener() {
public void onClick(View v) {
try {
mWakeLock.release();
textView.setText("mWakeLock.release()");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onPause",e.getMessage());
}
}
};
@Override
protected void onResume() {
super.onResume();
/*
* when the activity is resumed, we acquire a wake-lock so that the
* screen stays on, since the user will likely not be fiddling with the
* screen or buttons.
*/
try {
mWakeLock.acquire();
textView.setText("mWakeLock.acquire()");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onResume", e.getMessage());
}
}
@Override
protected void onPause() {
super.onPause();
// and release our wake-lock
try {
mWakeLock.release();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onPause",e.getMessage());
}
}
}
当手机从插座充电时,我想让手机通电
无需按下任何电源按钮即可自动启动。(不使用墙壁。)
插座,但通过笔记本电脑连接到USB电缆时工作)
您只能通过修改手机的操作系统文件来实现这一点。基本上,在
/system/bin/chargemon
中有引导脚本/二进制文件,您可以将其替换为不执行任何操作的脚本请自行承担风险,因为这可能会导致设备永久损坏。此外,制造商保修也将失效。最后我得到了解决方案,您可以通过删除系统/bin/charge\u only\u模式
文件来实现这一点。请自行承担风险,并在删除之前备份该文件。我得到了理想的结果,即开机时,它连接到墙上充电器,现在它的工作良好。
祝你一切顺利 我找到了另一种方法(多亏了DavidThompson256) 首先确保你的手机是根目录的(我发现iRoot在这方面非常好),然后在你的手机上安装RootExplorer.apk(或类似的) 尝试编辑“/system/bin/playlpm”,并用以下命令替换其内容:(不要忘记先进行备份) (我知道内容是二进制的,只需删除它们并写入这两行并保存文件) 注意:当您修改该文件时,不会对其权限应用任何更改,但如果您正在创建另一个文件,请记住完全按照原样设置权限
最后,请自行承担风险。这对我有用。(三星发现S730M)我还尝试用sh脚本取代仅充电模式,该脚本重新启动了手机,但只得到了一个带有M的红色圆圈(在摩托罗拉仿生手机上)。将脚本更改为下面的脚本使其正常工作…现在,我得到带有M的红色圆圈几秒钟,然后是一个空白屏幕,另一个带有M的红色圆圈,然后启动
#!/system/bin/sh
su -c "/system/bin/reboot -n outofcharge"
在我的设备Lenovo K7000 Plus上,需要修改的文件是
kpoc\u charger
,位于/system/bin
我的手机使用安卓6.0 ROM,Ipod文件不工作,但kpoc_充电器工作得很好
问候
联想A2010手机的Hadi如下:
#!/system/bin/sh
/system/bin/reboot
因此,我试图用第三代Moto G实现这一点。根据Rohit的回答,它有一个仅充电模式文件,但仅仅移动/重命名它并不能使手机充电后重新启动。取而代之的是,它只是挂着摩托罗拉的标志。当我用这里引用的任何脚本替换仅收费模式时,我得到了相同的结果
然而,我确实让它发挥了作用。我将/system/bin/reboot复制到/system/bin/charge_only_模式,成功了。Moto e4和Pixel 2 XL: 将您的设备放入引导加载程序(fastboot),并从通过USB与Android工具连接的计算机上运行以下命令:
fastboot oem关闭模式收费0
通过更新init.rc
文件,我可以让它正常工作
我在充电器上找到了触发器,并在其下方添加了以下行:
setprop ro.bootmode "normal"
setprop sys.powerctl "reboot"
整个触发器块最终看起来像这样
on charger
class_start charger
setprop ro.bootmode "normal"
setprop sys.powerctl "reboot"
然后需要重新打包并刷新更新后创建的启动映像
通过USB连接设备
打开设备电源并进入引导加载程序模式
adb reboot bootloader
要刷新引导映像,请在fastboot中执行以下命令
fastboot flash boot new-boot.img
注意:即使使用电源按钮或软件关机将设备关闭,此修复程序也会导致设备在插入时重新启动。
资料来源:
您可以在此处看到包含我的项目的这些更改的提交:
这是因为如果你将其插入笔记本电脑,它会将其用作数据线,但墙上的插座不会发送任何数据,只有电压你可以提供一些java代码吗?@Rohit你可以发布当前使用USB电缆的代码吗?对于USB,默认情况下,它在摩托罗拉EAt中工作,最后找到解决方案!和平!救济没有像chargemon这样的东西。我有charge_monitor,这个文件是编码的。当OP声明他打算在设备使用USB电缆通电时启动设备时,这将如何工作?简而言之,当设备关闭时,没有应用程序正在运行,因此您的代码甚至不会运行
fastboot flash boot new-boot.img