Peršokti į turinį

[?] Android app, change device background wallpaper


mindux9

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2678 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Kodėl man instaliavus šį app'są ir perkrovus įrenginį, ekrano paveikslėlis nepasikeičia? Rankiniu būdu paleidus tą programą, paveikslėlis, pasikeičia, po to per nustatymus pakeičiau paveikslėlį į ankstesnį. Perkraunu įrenginį ir tada automatiškai pasikeičia kaip ir reikia? Kodėl? Tipo turi būtu bent kartą "suaktyvintas-paleistas", kad perkrovus, sistema rastu kokį app'sa auto-start'int? Kaip tai apeiti, kad švariai įrašius šį app'sa ir perkrovus įrenginį pasikeistu paveikslėlis?

 

Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="desktopwallpaper.com.desktopwallpaper">
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".AndroidStartServiceOnBoot" ></service>

        <receiver android:name=".BootReciever"
            android:enabled="true"
            android:exported="false">

            <intent-filter >
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>

    </application>
</manifest>

MainActivity:

package desktopwallpaper.com.desktopwallpaper;

import android.app.Activity;
import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import static desktopwallpaper.com.desktopwallpaper.R.styleable.View;

public class MainActivity extends Activity {
	WallpaperManager wallpaperManager ;
	Bitmap bitmap1, bitmap2 ;
	DisplayMetrics displayMetrics ;
	int width, height;
	BitmapDrawable bitmapDrawable ;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bitmapDrawable = (BitmapDrawable) getDrawable(R.drawable.bg);
		bitmap1 = bitmapDrawable.getBitmap();
		GetScreenWidthHeight();

		bitmap2 = Bitmap.createScaledBitmap(bitmap1, width, height, false);

		wallpaperManager = WallpaperManager.getInstance(MainActivity.this);
		try {
			wallpaperManager.setBitmap(bitmap2);
			wallpaperManager.suggestDesiredDimensions(width, height);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public void GetScreenWidthHeight(){
		displayMetrics = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
		width = displayMetrics.widthPixels;
		height = displayMetrics.heightPixels;
	}
}

AndroidStartServiceOnBoot:

package desktopwallpaper.com.desktopwallpaper;

import android.app.Service;
import android.app.WallpaperManager;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.IBinder;
import android.util.DisplayMetrics;

import java.io.IOException;

public class AndroidStartServiceOnBoot extends Service {
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    WallpaperManager wallpaperManager ;
    Bitmap bitmap1, bitmap2 ;
    BitmapDrawable bitmapDrawable ;

    @Override
    public void onCreate() {
        super.onCreate();
        bitmapDrawable = (BitmapDrawable) getDrawable(R.drawable.bg);
        bitmap1 = bitmapDrawable.getBitmap();
        bitmap2 = Bitmap.createScaledBitmap(bitmap1, 1280, 800, false);
        wallpaperManager = WallpaperManager.getInstance(AndroidStartServiceOnBoot.this);
        try {
            wallpaperManager.setBitmap(bitmap2);
            wallpaperManager.suggestDesiredDimensions(1280, 800);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

BootReciever:

package desktopwallpaper.com.desktopwallpaper;

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

public class BootReciever extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED))
        {
            Intent serviceIntent = new Intent(context, AndroidStartServiceOnBoot.class);
            context.startService(serviceIntent);
        }
    }
}

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2678 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...