안 드 로 이 드 못 자동 카드 기능 실현
우선 안 드 로 이 드 폰 을 계속 사용 하지 않 고 회사 전원 을 꽂 아야 합 니 다.못 을 다운로드 하고 과속 카드 로 설정 합 니 다.
자동 열기
우 리 는 단지 하나의 서 비 스 를 시작 해 야 하 며,정시 에 못 을 열 고 다시 돌아 오 면 된다.
꺼짐 방지
이 화 웨 이 휴대 전 화 는 영원히 화면 을 멈 추 지 않 는 옵션 이 없 기 때문에 우 리 는 자동 으로 화면 을 멈 추 지 않도록 설정 해 야 한다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);
}
못 을 열 고 출석 한 후에 돌아오다.핵심 프로그램
/**
*
* @param packageName
*/
public void openApplication(String packageName) {
PackageManager packageManager = getPackageManager();
PackageInfo pi = null;
try {
pi = packageManager.getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
}
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List<ResolveInfo> apps = packageManager.queryIntentActivities(resolveIntent, 0);
ResolveInfo resolveInfo = apps.iterator().next();
if (resolveInfo != null) {
String className = resolveInfo.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
}
}
cmd 를 열 어 못 의 가방 이름 을 찾 습 니 다.adb devices
adb shell
pm list package|grep alibaba 는 알 리 바 바 와 관련 된 모든 가방 이름 을 찾 을 수 있 고 pm list package 에서 모든 가방 이름 을 찾 을 수 있 습 니 다.
//
String packageName = "com.alibaba.android.rimet";
openApplication(packageName);
// 2s,
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// app
String packageNameNew = "com.example.dingding";
openApplication(packageNameNew);
service 를 만들어 자동 으로 카드 를 찍 고 자바 의 cron4j 라 이브 러 리 를 사용 하여 정시 작업 을 수행 합 니 다.이전 블 로 그 를 참조 할 수 있 습 니 다.JFinal 은 cron4j 로 정시 임 무 를 수행 합 니 다.
public class DingService extends Service {
private final String TAG = "DingService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.e(TAG, "Service Start!");
ClockThread ct = new ClockThread();
ct.start();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
/**
*
* @param packageName
*/
public void openApplication(String packageName) {...}
public class ClockThread extends Thread {
public void run() {
Scheduler scheduler = new Scheduler();
// 7:50,11:50,13:50,17:50
scheduler.schedule("50 7,11,13,17 * * mon,tue,wed,thu,fri", new Thread() {
@Override
public void run() {
String packageName = "com.alibaba.android.rimet";
openApplication(packageName);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String packageNameNew = "com.example.dingding";
openApplication(packageNameNew);
}
});
scheduler.start();
}
}
}
마지막 으로 MainActivity 에서 서 비 스 를 시작 하면 됩 니 다.무 작위 시간
카드 를 더욱 진실 하 게 하기 위해 서 는 매일 카드 를 찍 는 시간 이 가능 한 한 다르다.우 리 는 Scheduler(스케줄 러)로 매일 아침 6 시 와 같은 고정 시간 에 네 개의 시간 무 작위 스케줄 러 임 무 를 만들어 매일 카드 를 완성 합 니 다.
public class ClockThread extends Thread {
public void run() {
scheduler = new Scheduler();
scheduler.schedule("0 6 * * mon,tue,wed,thu,fri", new Thread() {
@Override
public void run() {
if(scheduler1 != null){
scheduler1.stop();
scheduler1 = null;
}
if(scheduler2 != null){
scheduler2.stop();
scheduler2 = null;
}
if(scheduler3 != null){
scheduler3.stop();
scheduler3 = null;
}
if(scheduler4 != null){
scheduler4.stop();
scheduler4 = null;
}
// 7:00 ~ 7:27
// scheduler1 scheduler.schedule(new Random().nextInt(28)+" 7 * * *",new Thread())
// 11:30 ~ 11:57
// scheduler2 scheduler.schedule((30 + new Random().nextInt(28))+" 11 * * *",new Thread())
// 13:00 ~ 13:27
// scheduler3 scheduler.schedule(new Random().nextInt(28)+" 13 * * *",new Thread())
// 17:30 ~ 17:57
// scheduler4 scheduler.schedule((30 + new Random().nextInt(28))+" 17 * * *",new Thread())
}
});
scheduler.start();
}
}
이상 은 안 드 로 이 드 가 못 자동 카드 기능 을 실현 하 는 상세 한 내용 입 니 다.안 드 로 이 드 못 자동 카드 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.