Diskuze: Proč se neudělá screenshot po kliknutí na tlačítko floating widget, které je spojeno s funkcí screenshotu?
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, vypíše sa ti aspoň text "Screenshot saved:.." v toaste?
Ano, ale jen v případě samostatného kódu pro screenshot, u tohoto kombinovaného ne.
A v prípade, že sa toast vypíše tak sa ti screen uloží?
Ano, to jsem zkontroloval.
Keďže samotný kód urobí screen a aj sa vypíše toast a kombinovaný kód neurobí screen ale ani sa nevypíše toast a nikdy sa ti neukáže toeast s textom "Error taking screenshot." z toho vyplýva, že pri kombinovanom ti to ani len neskočí do funkcie takeScreenshot. Sú tam miesta, ktoré by to mohli ovplyvniť.
Ak vieš debugovať daj si breakpoint do metódy onRequestPermissionsResult, ak nevieš daj si tam napr. ďalšie toasty a skontroluj či tieto podmienky platia
if (requestCode == REQUEST_CODE_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Prípadne pre lahšiu komunikáciu uprav metódu takto a daj vedieť aké toasty sa ukazali
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
Toast.makeText(this, "aaaaa", Toast.LENGTH_SHORT).show();
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE_PERMISSION) {
Toast.makeText(this, "bbbbb", Toast.LENGTH_SHORT).show();
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "ccccc", Toast.LENGTH_SHORT).show();
takeScreenshot();
} else {
Toast.makeText(this, "Permission denied. Unable to take screenshot.", Toast.LENGTH_SHORT).show();
}
}
}
Nedal jsem tam to nejdůležitější. v tom FloatingWidgetService.java má být:
public void onClick(View v) {
//Myscreenshot screenshot1 = new Myscreenshot();
//screenshot1.takeScreenshot();
System.out.println("hello");
To vypsání hello funguje, jakmile ale odstraním // pro komentář, tak se
myScreenshot nezavolá ale vypíše se:
*
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.project4, PID: 30790
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String android.content.Context.getPackageName()' on a null object
reference*
Zobrazeno 7 zpráv z 7.