آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کار با آلارم منیجر (کمک لطفا...؟!)

Shadow  9 سال پیش  9 سال پیش
0 0

سلام دوستان من برای تغییر والپیپر گوشی به صورت خودکار بعد از یه تایمی از این کدها استفاده می کنم و کار هم می کنه خوب مشکل من اینجاست که من می خوام مثلا هر 10 دقیقه این کار انجام بشه نه یکبار چون تا حالا با آلارم کار نکردم بلد نیستم لطفا راهنمایی کنید. مشکل دیگه اینه که من لیست عکس های داخل یه پوشه رو می گیرم برای تغییر والپیپر چجوری بعد از هر 10 دقیقه ی عکسی متفاوت از لیست ست بشه؟

 b1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
startAlert();
}
});

public void startAlert() {
EditText text = (EditText) findViewById(R.id.time);
int i = Integer.parseInt(text.getText().toString());
Intent intent = new Intent(this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this.getApplicationContext(), 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ (i * 1000), pendingIntent);
Toast.makeText(this, "Alarm set in " + i + " seconds",Toast.LENGTH_LONG).show();
public class MyBroadcastReceiver extends BroadcastReceiver {
ArrayList<WallpaperDownload> wallpaperDownloads;
FileInputStream is;
BufferedInputStream bis;
WallpaperDownload download;
WallpaperAdapter wallpaperAdapter;

@Override
public void onReceive(final Context context, Intent intent) {
getData();
WallpaperManager wm = WallpaperManager.getInstance(context);
try {
InputStream ins = new URL(String.valueOf(download.getUri())).openStream();
wm.setStream(ins);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


private ArrayList<WallpaperDownload> getData() {
wallpaperDownloads = new ArrayList<>();
File downloadFolder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/sima/wallpaper/");
if (downloadFolder.exists()) {
File[] files = downloadFolder.listFiles();
for (int i = 0; i < files.length; i++) {
File file = files[i];
download = new WallpaperDownload();
download.setUri(Uri.fromFile(file));
wallpaperDownloads.add(download);
}
}
return wallpaperDownloads;
}
}
0 0
هر عکسی که ذخیره میشه اسمش اصولا باید منحصر به فرد باشه، پس زمانی که از هر عکس استفاده به عنوان زمینه استفاده کردین اسمش رو در جایی مثل دیتابیس ذخیره کنید، دفعه بعد بررسی کنید که اسم عکس انتخابی در دیتابیس نباشه، اما AlarmManager توی نسخه های مختلف اندروید تفاوت هایی داشته که دونستنش واجب هست به نظرم، در ضمن از اندروید ۵ هم JobScheduler اضافه شده از اونم استفاده کنید، این صفحه و لینکهاش رو حتما مطالعه کنید لینک (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .