制作一个APK适用安卓系统APK内容:可以设置关机时间、关机次数、重启次数、自动点击
屏幕等功能的应用。
我们需要使用Android Studio来创建一个新的项目,并添加以下功能:
-
关机时间设置:用户可以设置指定的时间,应用程序将在该时间自动关机。
-
关机次数和重启次数设置:用户可以设置关机和重启的次数。当达到指定次数后,应用程序将不再执行关机或重启操作。
-
自动点击屏幕:应用程序将模拟用户的屏幕点击,以便执行自动化任务。
以下是该应用程序的主要代码:
MainActivity.java
import android.annotation.SuppressLint;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.PowerManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
Button btnShutdown, btnRestart, btnAutoClick;
EditText etShutdownCount, etRestartCount, etShutdownTime;
int shutdownCount = 0;
int restartCount = 0;
int shutdownTime = 0;
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
if (shutdownTime == 0) {
return;
}
shutdownTime--;
if (shutdownTime == 0) {
shutdownDevice();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnShutdown = findViewById(R.id.btn_shutdown);
btnRestart = findViewById(R.id.btn_restart);
btnAutoClick = findViewById(R.id.btn_auto_click);
etShutdownCount = findViewById(R.id.et_shutdown_count);
etRestartCount = findViewById(R.id.et_restart_count);
etShutdownTime = findViewById(R.id.et_shutdown_time);
btnShutdown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shutdownCount = Integer.parseInt(etShutdownCount.getText().toString());
if (shutdownCount <= 0) {
Toast.makeText(getApplicationContext(), "Invalid shutdown count", Toast.LENGTH_SHORT).show();
return;
}
shutdownDevice();
}
});
btnRestart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
restartCount = Integer.parseInt(etRestartCount.getText().toString());
if (restartCount <= 0) {
Toast.makeText(getApplicationContext(), "Invalid restart count", Toast.LENGTH_SHORT).show();
return;
}
restartDevice();
}
});
btnAutoClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startAutoClick();
}
});
}
@Override
protected void onResume() {
super.onResume();
timer.schedule(task, 1000, 1000);
}
@Override
protected void onPause() {
super.onPause();
timer.cancel();
}
@SuppressLint("InvalidWakeLockTag")
private void shutdownDevice() {
if (shutdownCount <= 0) {
return;
}
shutdownCount--;
Log.d(TAG, "Shutdown device");
try {
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot -p"});
proc.waitFor();
} catch (Exception ex) {
ex.printStackTrace();
}
}
@SuppressLint("InvalidWakeLockTag")
private void restartDevice() {
if (restartCount <= 0) {
return;
}
restartCount--;
Log.d(TAG, "Restart device");
try {
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot"});
proc.waitFor();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void startAutoClick() {
Log.d(TAG, "Start auto click");
final Handler handler = new Handler();
final int delay = 500;
handler.postDelayed(new Runnable() {
public void run() {
try {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My wakelook");
wakeLock.acquire();
wakeLock.release();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Thread.sleep(500);
Intent i = new Intent();
i.setClassName("com.android.settings", "com.android.settings.Settings$AccessibilitySettingsActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
Thread.sleep(500);
Intent i1 = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i1);
Thread.sleep(500);
Intent i2 = new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS);
i2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i2);
Thread.sleep(500);
Intent i3 = new Intent(Intent.ACTION_MAIN);
i3.addCategory(Intent.CATEGORY_HOME);
i3.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i3);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
handler.postDelayed(this, delay);
}
}, delay);
}
}
AndroidManifest.xml
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是一个简单的应用程序,它允许用户设置关机、重启和自动点击屏幕等功能。请注意,该应用程序需要在rooted的Android设备上运行。
原文地址: https://www.cveoy.top/t/topic/bQHT 著作权归作者所有。请勿转载和采集!