Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Выполнений действий в фоне - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Отловить нажатие кнопки Done http://www.cyberforum.ru/android-dev/thread1136960.html
Activity имеет элемент EditText ( android:inputType="number") подскажите как отловить нажатие DONE?
Программирование Android Обновление строки TextView допустим, есть приложение в котором в TextView выводится вопрос, и есть две кнопки да или нет, так же кнопка next, так вот как реализовать обновление строки TextView при нажатии next? MainActivity:... http://www.cyberforum.ru/android-dev/thread1136917.html
Context немного теории Программирование Android
Вообщем нужно мне было запустить из метода своего класса фрагмент. Вообщем как положено передал в класс контекст все дела. public Constructor (Context ctx) { super(ctx); this.ctx = ctx;...
Программирование Android JSOUP - найти 2 значения одним селектом
<div class="i"> <input type="checkbox" name="city" value="77" id="c15" /> <label for="c15">Москва</label></div> <div class="i"> <input type="checkbox" name="city" value="77" id="c15" /> <label...
Программирование Android Скриншот окна http://www.cyberforum.ru/android-dev/thread1136544.html
Всем привет! Цель, сделать скриншот экрана устройства. В интернете нашел исходник: import java.io.File; import java.io.FileOutputStream; import java.util.Arrays; import java.util.Iterator; ...
Программирование Android Программное изменение регистра клавиатуры подскажите пожалуйста, есть ли возможность поменять регистр на клавиатуре, когда она вызывается на экран программно. (мне необходимо, чтобы на вызываемой клавиатуре при ее появлении был нажат шифт,... подробнее

Показать сообщение отдельно
wichujanin
1 / 1 / 0
Регистрация: 06.03.2014
Сообщений: 7
03.04.2014, 00:07  [ТС]
Спасибо за ответ, вникаю в статью...
Знающие люди, помогите плиз с каркасом такого приложения, там кода то немного... который день уже с этим бъюсь безрезультатно, много мануалов по сервисам и т.д. для новичка такого как я они сложные
Не сочтите за наглость, буду очень рад исходнику каркаса + манифесту и т.д. Знаю что такое не очень приветствуется, но мне бы очень помог рабочий исходник.
Нужно приложение без визуальных элементов, чтобы при запуске устанавливалось, при перезагрузке автозагружалось. Сам пишу на си, под Windows я бы в такой задаче перехватывал щелчок мыши и колесо прокрутки, получал бы системное время, после каждого вызова PrtSc() сделал бы проверку, чтобы скриншоты делались не чаще 2000 миллисекунд, чтобы ресурсы сильно не расходовать.
Под андроид только пробую писать, как можно тут это красиво реализовать?
После прочтения статьи на ум приходит обрабатывать ACTiON_SCREEN_ON и делать скриншоты с интервалом, как можно сделать лучше?

Добавлено через 3 часа 51 минуту
Хочу внутри сервиса выполнять свою функцию через определенный период.

Взял исходник из примера сервиса, дописал свою функцию, нажал Ctrl + Shift + O:
Код
package org.divenvrsk.examples.service;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

public class RepeatingAlarmService extends BroadcastReceiver {

    public void PrtSc()
    {
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) 
        {
            File sdCard = Environment.getExternalStorageDirectory();
            File directory = new File(sdCard.getAbsolutePath() + "/ScreenShots");
            directory.mkdirs();
            int i = 0;
            String filename;
            File yourFile;
            do {
                i++;
                filename = "screenshot" + i + ".jpg";
                yourFile = new File(directory, filename);
            } while (yourFile.exists());
            Bitmap bitmap;
//Ошибка тут:                                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            View view = getWindow().getDecorView().findViewById(android.R.id.content).getRootView();
            view.setDrawingCacheEnabled(true);
            bitmap = Bitmap.createBitmap(view.getDrawingCache());
            view.setDrawingCacheEnabled(false); 
            OutputStream fileOut = null;
            try {
                fileOut = new FileOutputStream(yourFile);
                bitmap.compress(Bitmap.CompressFormat.JPEG, 50, fileOut);
                fileOut.flush();
                fileOut.close();
            } 
            catch (FileNotFoundException e){
                e.printStackTrace();
            }        
            catch (IOException e){
                e.printStackTrace();
            }    
        }        
    }
    
    @Override
    public void onReceive(Context context, Intent intent) {
     PrtSc();
        Toast.makeText(context, "It's Service Time!", Toast.LENGTH_LONG).show();
        Log.v(this.getClass().getName(), "Timed alarm onReceive() started at time: " + new java.sql.Timestamp(System.currentTimeMillis()).toString());
    }
}
Код
package org.divenvrsk.examples.service;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class OnBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
            Intent serviceLauncher = new Intent(context, ServiceExample.class);
            context.startService(serviceLauncher);
            Log.v(this.getClass().getName(), "Service loaded while device boot.");
        }
    }
}
Код
package org.divenvrsk.examples.service;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class ServiceActivity extends Activity implements View.OnClickListener {

    Button buttonStart, buttonStop;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        buttonStart = (Button) findViewById(R.id.buttonStart);
        buttonStop = (Button) findViewById(R.id.buttonStop);

        buttonStart.setOnClickListener(this);
        buttonStop.setOnClickListener(this);
    }

    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.buttonStart:
                Log.v(this.getClass().getName(), "onClick: Starting service.");
                startService(new Intent(this, ServiceExample.class));
                break;
            case R.id.buttonStop:
                Log.v(this.getClass().getName(), "onClick: Stopping service.");
                stopService(new Intent(this, ServiceExample.class));
                break;
        }
    }
}
Код
package org.divenvrsk.examples.service;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.SystemClock;
import android.util.Log;
import android.widget.Toast;

public class ServiceExample extends Service {

    public static final int INTERVAL = 10000; // 10 sec
    public static final int FIRST_RUN = 5000; // 5 seconds
    int REQUEST_CODE = 11223344;

    AlarmManager alarmManager;

    @Override
    public void onCreate() {
        super.onCreate();

        startService();
        Log.v(this.getClass().getName(), "onCreate(..)");
    }

    @Override
    public IBinder onBind(Intent intent) {
        Log.v(this.getClass().getName(), "onBind(..)");
        return null;
    }

    @Override
    public void onDestroy() {
        if (alarmManager != null) {
            Intent intent = new Intent(this, RepeatingAlarmService.class);
            alarmManager.cancel(PendingIntent.getBroadcast(this, REQUEST_CODE, intent, 0));
        }
        Toast.makeText(this, "Service Stopped!", Toast.LENGTH_LONG).show();
        Log.v(this.getClass().getName(), "Service onDestroy(). Stop AlarmManager at " + new java.sql.Timestamp(System.currentTimeMillis()).toString());
    }

    private void startService() {

        Intent intent = new Intent(this, RepeatingAlarmService.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, REQUEST_CODE, intent, 0);

        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(
                AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() + FIRST_RUN,
                INTERVAL,
                pendingIntent);

        Toast.makeText(this, "Service Started.", Toast.LENGTH_LONG).show();
        Log.v(this.getClass().getName(), "AlarmManger started at " + new java.sql.Timestamp(System.currentTimeMillis()).toString());
    }
}
Где:
View view = getWindow().getDecorView().findViewById(android.R.id.content).getRootView();
getWindow подчеркивается красным, ошибка: The method getWindow() is undefined for the type RepeatingAlarmService
Как испарвить?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru