• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

  • Question
Nokia 5.4 bootloop

I have my mother her phone here. It's a Nokia 5.4 with Android one. It's stuck on the Nokia logo. When I press volume up and start button I get the little Adroid guy and a no command text. When I press volume down and start button I get the options power off, Start, restart bootloader, recovery mode. Non of those help anything.
The bootloader and baseband version are empty. Not sure how to go from here. I would think trying a hard reset and use some software to atleast get (some) of her pictures bak was the easiest thing to do however there is no factory reset option. I hope someone can help me. She is 88 and eventhough she doesnt really understand her phone, she likes to play a game and take pictures on it.

"We've detected that this app is using an unsupported version of Play billing. Please upgrade to Billing Library 5 or newer to release this app."

Hey everyone, just encountered an issue right on the cusp of releasing a game. When I try to upload my game to the playstore, it comes up with the error "We've detected that this app is using an unsupported version of Play billing. Please upgrade to Billing Library 5 or newer to release this app.". By default Unreal 5.0 has version 3, my game doesn't include any form of transactions and I'm unclear if I can circumvent this step if I find out how to turn off microtransactions in engine. I've looked through all I could find related to this error but unfortunately nothing has worked so far. If anyone has experience with how to fix this, I would greatly appreciate it. Thanks for reading

Brain Fart of the Day

We all have those brain fart moments and as I get older they seem more frequent. I thought it would be fun to share those brain farts to lessen that "I can't believe I did that" feeling. Don't leave me hangin' here... share yours.

I'll start. The other day I was working on a mower. When I went to replace the screws I had removed, I couldn't find my screwdriver. I just had it.... I retraced all of my steps looking for it. It was just gone. I finally gave up and went to the shed to get another screwdriver. After I finished replacing the screws I put the screwdriver in my back pocket. It was at that moment that I found the missing screwdriver.. it was also in my back pocket.

A bonus brain fart while I'm talking about mowers. I mow commercially and haul my mowers in a traditional mowing trailer with a drop down ramp in the rear. A number of years ago I was mowing the deep well pump stations for the city. They are all located out in the country. I finished my last station and headed back into town driving over three miles at 55mph when I realized I had not put the ramp up. It's a wonder I didn't catch the countryside on fire with all of the sparks I had to be leaving behind me dragging that ramp.

Help Head unit

Hello
can anyone help me update my 10.25 inch android screen?
I'm still stuck on Android 7 and would like to upgrade to 10, 11 or higher.
Below information of the head unit.
Type:JLY_BENZ_C
SERIAL:2234...
APP: V2 0.3.041h
System: V3.32.290410
MCU: BENZ_V4.1C_0413_AU
CAN:BENZ-V1.0-190220
I would be happy to provide you with further information.
Thank you in advance for your help.

  • Question
Vortex T10M Pro Not Recognizing Installed SD Card

Cool tablet, but I really want to put a bunch of books on an SD card and use it to read them. However, I have tried several different SD cards, formatted according to the instructions, but this tablet does not recognize any of them. Further, the instructions and illustrations in the owner's manual for accessing SD card content are completely different from what I am seeing on my tablet. How do I access the SD card installed in my tablet? The manual references a "Settings" option, but none of the settings options I see on this tablet contain any information about the installed SD card. Thanks in advance.

Best way to protect phone camera lens?

I got the Galaxy S20 Ultra specifically for its beastly camera but over a couple years it got dings and scratches that eventually made it unusable.

I recently got the Pixel 8 Pro and although I prefer the Galaxy cameras (I'm a sucker for zoom), I have lots of features to still explore. I want the lenses on this thing to last longer than my last devices!

I can't imagine that putting a protective anything over the camera would be a good idea since it would inherently obstruct the view. Surely there must be SOME solution aside from being less clumsy?

Any products or tips you can suggest for protecting phone camera lenses without hindering photo and video quality?

And some photos I took kayaking today! Loving the fall colors starting to come in.

PXL_20231020_185655381.jpg

PXL_20231020_192324847.jpg


PXL_20231020_191252642.jpg

PXL_20231020_191745376.jpg

What is the correct thread-safe way to access shared resource?

We are developing on Samsung Tab Active 4 Pro using Android Studio, kotlin and java. We are getting constant at random times app deadlocks. I am not new to developing with threads and synchronization methods however I am very new to Android development. I assume I am doing something wrong and will share what I am doing. But to set up the situation, we are using OSMDroid for the map viewing and are using layers of the map for draw icons that represent aircraft flying over the map. The main android app is done in kotlin and the UDP over ethernet is written in java files. Aircraft telemetry is received at about 1 hz over ethernet inside protobuf packets. The protobuf is received and parsed in a Listener java class using a thread and implemented in the run() method. In the udp handler where we receive and parse protobuf we call a kotlin object "class" (unfortunate use of terms with kotlin) that has a method UpdateEntity(). Here is a snippet of this code that handles a proto message type called Entity. EntityClass is the java wrapper created. This part is working fine, no issues here, just showing for context.

Code:
             if (msg.getMessageTypeEnum() == MessageWrapperClass.MessageWrapper.MessageTypeEnum.MESSAGE_TYPE_ENTITY) {
                    EntityClass.Entity entity = msg.getMessageEntity();
                    Log.d(TAG, "Listener:run (thread): Entity received\"" + entity.toString());

                    // 0 deg points north, vertically in map
                    double heading = Math.atan2(
                            entity.getKinematics().getEastSpeed(),
                            entity.getKinematics().getNorthSpeed()) * 180.0 / Math.PI;
                    // Put to [0,360] range
                    if (heading < 0) {
                        heading += 360.0;
                    }

                    Position position = new Position(
                            heading,
                            entity.getKinematics().getPosition().getLatitudeDeg(),
                            entity.getKinematics().getPosition().getLongitudeDeg(),
                            entity.getKinematics().getPosition().getAltitudeHaeMeters(),
                            0.0);

                    HostileEntity unit = new HostileEntity(
                            Utils.TrimUUID(entity.getEntityID().getValue().toString()),
                            //todo: we need callsign here
                            "red",  //entity.getEntityID().getValue().toString(),
                            position, false);

                    Datasource.INSTANCE.UpdateEntity(unit);   // <---------- This accesses the shared list

                }

Datasource.INSTANCE.UpdateEntity(unit); call accesses the share list. Here is that method in total. Note Datasource is that singleton-like object construct that has all public "static" methods. (I'm a C++ guy mostly :) New to kotlin)

Java:
/**
 * [Datasource] holds the data that is utilized by the UI
 */
object Datasource {

    var currentStatus = ""
    var currentMode = Modes.Nav
    var Settings:SettingsClass = SettingsClass()

    //This is the list of automations
    var AutomationList = mutableListOf<AutomationClass>(
        WTP(),
        EW()
    )

    var TabPages = mutableListOf<String>()
    var TabPageContents = mutableListOf<TabPage>()
    var KillPairs = mutableListOf<KillPair>()
    var SelectedTab:Int = 0
    var newTab:String = ""
    var locklineschanged = false

    val entityUnitListMutex  = Mutex(false)
    val killPairsMutex = Mutex(false)

    /*
    This is the list of units. Any unit added to this list will get added to the map.
     */
    val entityUnitList =  mutableStateListOf<EntityUnit>()

    fun UpdateEntity(entity:EntityUnit)
    {
        if (!entity.isPositionValid()) {
            Log.e(ContentValues.TAG, "Datasource::UpdateEntity " + "Invalid entity passed:")
            return
        }
        entity.lifeTime_ms = System.currentTimeMillis() // update its life time

        try {
            // NOTE - FindEntity() call must remain OUTSIDE of runblocking and mutex because
            // FindEntity also has mutex and we do not want to nest mutex calls. Deadlock may occur
            val existingEntity = FindEntity(entity.id)

            runBlocking {
                entityUnitListMutex.withLock {
                    if (existingEntity != null) {
                        entity.status = existingEntity.status
                        entity.missionCount = existingEntity.missionCount
                        val index = entityUnitList.indexOf(existingEntity)

                        entityUnitList[index] = entity

                    } else {
                        entityUnitList.add(entity)
                    }
                }// end mutex
            }
        }
        catch(e:Exception)
        {
            Log.e(ContentValues.TAG, "Datasource::UpdateEntity " + e.toString())
        }
    }
/*
Find the entity in the list of active entities
 */
fun FindEntity(entityName: String): EntityUnit? {
try {
var returnval: EntityUnit? = null
        runBlocking {
            entityUnitListMutex.withLock {
                for (i in entityUnitList.indices) {
                     if (entityUnitList[i].id == entityName) {
                       returnval = entityUnitList[i]
                       break
                    }
                }
            }// end mutex
        }

        return returnval
} catch (e: Exception) {
Log.e(ContentValues.TAG, "Datasource::FindEntity " + e.toString())

return null
    }
}

My understanding of kotlin and android is that you need to use a coroutine if you want to use a mutex. I used a mutex to protect the shared resource, the entityUnitList of type mutableStateListOf<EntityUnit>

The Listener is started up on the main, UI thread however it uses its own thread to receive udp packets. The call to Datasource::UpdateEntity() is done in that thread, not the UI thread. Datasource is used by the UI thread as well and it needs access to the entityUnitLst to read from. The UI thread does not write to any of the elements in the list nor does it add or subtract elements from that list.

So the problem is the app will lock (not crash and disappear) and be non-responsive or frozen. This happens at various times but typically within a minute or two. My best guess is a thead race condition.
There was someone else developing the UI portions of this app and they said the UI only updates when a data element of it changes. So in UpdateEntity() these two lines do cause a UI refresh.

Code:
entityUnitList[index] = entity
...
entityUnitList.add(entity)

Here is another place accessing that list and is in the UI thread

Code:
fun PutStuffOnMap(
    uiState: FOXUiState, mapView: MapView, onEntityClicked: (entityClicked: String) -> Unit
) {
    try {
        val items = ArrayList<OverlayItem>()

        runBlocking {
            Datasource.entityUnitListMutex.withLock {
                for (i in entityUnitList.indices) {
                    val entity = entityUnitList[i]
                    PlotEntity(mapView, entity)?.let { items.add(it) }
                }
            }// end mutex
        }
. . .

There is more to that function but that function is called from here in a global method tha tis used in the map drawing code.
Java:
@Composable
fun MapRow(
    uiState: FOXUiState,
    onEntityClicked: (entityClicked: String) -> Unit,
    modifier: Modifier = Modifier){
    Row(modifier = modifier) {
        AndroidView(
            factory = { context ->

                MapView(context).apply {
                    SetUpMap( uiState, this, onEntityClicked)
                }
            },
            update = {
                    mapView ->
                PutStuffOnMap( uiState, mapView, onEntityClicked)
            }
        )
    }
}

I am thinking we have a mutex locking unlocking issue where it stays locked and the UI blocks with that runBlocking{ } block waiting for the unlock. The Listener gets in and gets out when updating the entity pretty quick. The only link to the UI thread is Datasource::UpdateEntity(). When we comment out UpdateEntity() we never deaklock or freeze the app. We can even pre-load entityUnitList with entity class elements and interact with them again with no app freeze. Its only when we enable getting movement updates over ethernet (using USB/Ethernet adapter plugged into the tablet) when we freeze the app eventually.

So I think using runBlocking is wrong so what is the correct way to share that entityUnitList over multiple threads safely? We do not have to use a mutex and we could consider other list types that are better with thread synchronization.

-Steve
EDIT wow this post is long, I apologize! Just wanted to give enough details.

Qirex Watch Face

My new watch face, just released!
Qirex Watch Face
Qirex Watch Face - Apps on Google Play

FREE & PREMIUM features available!
Modern looking interface, with as always, a lot of customisation available (custom shortcuts, custom data, ...)
Interactivity, second timezone, and many more to discover!

I hope that you will like it!
sbppKMAm.jpg
2i014Hsm.jpg

X61Ml85m.jpg
5Bbx2f2m.jpg

puHukQYm.jpg
7HuzIpLm.jpg

"Device Explorer" missing on Android Studio "Giraffe" (M1 Mac)

Android Studio Giraffe | 2022.3.1 Patch 2
MacBook Pro 16" 2021 (Apple Silicon)
Mac OS X Ventura 13.4.1 (c) (22F770820d)

Hello,

Sorry if this is a "stupid" question but I recently installed (just the other day actually) Android Studio on my PC and was able to browse my AVDs filesystem using "Device Explorer" in Android Studio.

However when trying to do the same on my Mac the "folder"-icon is greyed out in "Device Manager" and I can't find "Device Explorer" in the menubar under "Tools".

Attaching printscreen.

Screenshot 2023-10-20 at 20.47.36.png


Am I missing something?

Best Regards - TheSwede86

  • Suggestion
Cybertruck’s 2024 VIN Decoder and GVWRs Stir Enthusiastic Speculations

No vehicle has captured excitement quite like the Tesla Cybertruck, and early adopters have newfound hope since there is now an official delivery date (November 30th). And now, more details are emerging.

cybertruck-vin-decoder-1024x633.png

Unveiling the VIN​


A sleuthing forum user uncovered the Cybertruck VIN decoder, stirring excitement and prompting speculative discussions among enthusiasts. The details were disclosed through the National Highway Traffic Safety Administration (NHTSA) as required by law, then scrupulously dissected by fans, bringing various viewpoints and interpretations to light along the way.

Analysis of the GVWR​


The VIN information showcased differing Gross Vehicle Weight Ratings (GVWRs) for the Cybertruck models. The Performance version will boast a GVWR of 9,XXX pounds, while the Standard model will be at 8,XXX pounds. Participants in the forum compared these numbers with other models such as the Tesla Model X, Model S, and Model Y, as well as competitors like the Rivian R1T and the Hummer EV, placing the Cybertruck within a competitive range.

Model Varieties and Speculations​


Discussion particularly flourished around the likely initial release of the Dual Motor Standard and Triple Motor Performance models for 2024. Enthusiasts are surmising from the VIN details that the Dual Motor Standard might weigh between 8,000 to 9,000 pounds and the Triple Motor Performance could push into the 9,000 to 10,000-pound class.

For reference, here is a section of the VIN: 7G2 C E G E D R A 000001-999999

Reflecting on Weight Classes​


However, some believe that the added motor might not necessarily catapult the vehicle’s weight into the next classification, suggesting a certain fluidity in the weight classes based on configurations – it’s possible that Tesla is just playing it safe to account for last-minute changes.

Price Points and Federal Credits​


Concerns were also raised regarding the vehicle’s price points and their potential impact on eligibility for federal credits. With some configurations possibly pushing the price beyond $80,000, the availability of these credits becomes uncertain, adding another layer to prospective buyers’ considerations.

A Missing Quad Motor Model?​


Amidst the speculations, one noteworthy revelation is the absence of the Quad Motor model in the 2024 VIN details, leaving enthusiasts in suspense regarding its potential future release.

Concluding Thoughts​


In a synergy of excitement and curiosity, the disclosed VIN details have fueled rich discussions, offering a glimpse into the potential variances in the highly-anticipated Cybertruck models. Armed with this detailed breakdown and reflective analysis, enthusiasts and prospective buyers are better equipped to navigate the thrilling journey to the Cybertruck’s launch.

Source: NHTSA (PDF)

Read More

App for subtitles

Hi.How are you??We are looking for a good application for subtitles on videos we have saved.Just like it is on YouTube.We want subtitles from English to Greek. That's all. We don't want anything more than the application. Two or three we tried didn't do a good job.We don't want screen recording for example etc.That's what we wanted to ask you.
Friendly greetings.

Speech to Text

Speech to Text - offline support

We are looking for a google supported language model that helps in Speech-to-Text recognition for Xamarin MAUI/.NET Style mobile application, which targets both Android and iOS platforms. One of our critical requirements is to ensure this functionality is available in offline mode, as many of our applications cater to offline scenarios.Additionally, our application aims to support a variety of international languages, including English, Russian, Chinese, Portuguese, around 45 languages. Therefore, we are seeking a solution that offers multilingual support, preferably supporting different accents as well.
We would also like to know if google offers any customize services to support the requirements stated above.

type II diabetes

so i just was told that i might have type II diabetes. my doctor needs more lab work to fully determine this. but i have i high sugar levels in my blood. i am to see him in a month from now.

this explains why I have been drinking a lot of liquids. i was always thirsty....which in turns i was peeing a lot as well.

the doc gave me Mitformin which helps reduce the sugars in my blood. i also have to drastically adjust my diet as well. so i am gonna try a low carb diet. with little to no sugars as well......no carb diet is out of the question.......i love my bread too much....lol

so far the medicine and low carbs have reduced the constant peeing back to what seems normal for me.

anybody here is diabetic?
does anybody have any tips you would like to share?

Implementation of Runtime Resource Overlay from Vendor Directory , For my Learning Purpose.

How to Implement Both Static and Dynamic Runtime Resource Overlay for an Android Automotive Product from Vendor Directory of AOSP 12L ?

Using Runtime Resource Overlay, How to change the whole appearance of that Automotive Product, Like the overall Appearance of SystemUI and other Applications.

Can someone please help me with this?

  • Suggestion
LG OLED Brings Cinematic Joy to Busan International Film Festival

BIFF-2023.jpg
Photo credit: BIFF

As the curtain rose on the 28th Busan International Film Festival (BIFF), a wave of cinematic joy and festive excitement swept through the vibrant streets of Busan, South Korea. A hub for cinematic celebration, BIFF is renowned for nurturing emerging talent and connecting cultures through the universal language of film. With this spirit, the LG OLED Awards made their debut at the festival this year, joining hands with BIFF to not only support the film industry but promote rising directors and independent filmmakers in South Korea and Asia.​

LG-OLED-Award-1.png

LG presented two awards at the festival to acknowledge outstanding innovation in visual aesthetics. The LG OLED New Currents Award gives recognition to emerging Asian filmmakers’ first or second feature films, and the LG OLED Vision Award celebrates independent Korean filmmakers with high quality and unique vision.​

LG-OLED-Award-2.png

(From left to right) Director Hur Jang and Director Jeong Beom, recipients of LG OLED Vision Award

A panel of industry experts from the film and content creation industries collaborated to determine the recipients of the distinguished awards, and after careful deliberation, the much-anticipated winners were recently announced at the KNN Theater in Busan. Thai director Patiparn Boontarig received the LG OLED New Currents Award for his exceptional work, ‘Solids by the Seashore,’ while Korea’s Jeong Beom and Hur Jang earned the LG OLED Vision Award for their cinematic achievement, ‘The Berefts.’ In addition to these honors, both winners were granted LG OLED evo 77-inch models and a cash prize.​

LG-OLED-Award-3.png

At the ceremony, the LG OLED evo 77-inch G3 model played video clips to introduce the award entries on the stage, and the LG SIGNATURE OLED M (Model 97M3) was also showcased, representing a decade of excellence in OLED technology. Visitors were impressed with the world’s largest 97-inch OLED TV which boasts wireless capabilities that can transmit 4K resolution content at a 120Hz refresh rate.​

LG-OLED-Award-4.jpg
(from left to right) Director Hur Jang and Director Jeong Beom, recipients of LG OLED Vision Award (Photo credit: BIFF)

“Through the establishment of the LG OLED New Currents & Vision Awards, we are supporting the independent film creators in Korea and Asia to try new technical attempt in their artwork,” said Kate Oh, vice president of the Brand Communication Division at the LG Home Entertainment Company. “In addition, we will continue to inspire movie fans around the world to experience infinite possibilities of visual artistry with LG OLED TVs that offers the differentiated viewing experiences.”

“While we have been considering the means to support filmmakers in Korea, we have achieved a positive outcome through closer cooperation with LG Electronics,” said Jung Hanseok, programmer for Korean cinema at BIFF, who expressed his anticipation of the new collaboration. “We will continuously support emerging and independent filmmakers in Korea and Asia.”

By hosting the LG OLED Awards at BIFF, the company had the opportunity to open possibilities to talented film directors around the world while also showcasing the technological prowess of LG OLED TVs, which have been chosen by many filmmakers as reference displays for their projects thanks to impressive contrast and unparalleled color representation.

Along with establishing the LG OLED Awards at BIFF, the company is actively promoting the optimal viewing experience provided by LG OLED with various filmmakers and colorists. Consumers can even visit the LG OLED Movie Club to check out content recommended to watch on LG OLED TVs.

For more stories on how LG OLED inspires the world of cinematic art and the passion of movie lovers, stay tuned to LG Newsroom.​

# # #​

Read full article

Android 13 fonts

I've just changed to a Motorola g84 5G phone running Android 13 and I
use dark mode wherever possible. I use the Microsoft launcher. I carried
everything forward from my old phone using Google and Microsoft launcher
cloud backups. I've just spent the usual long time setting up the apps
again and my old eyes are taking a hammering from reading settings,
particularly trying to find settings which will enable changing existing
fonts - I can change some of the sizes, but not the font.

One of the fonts used by the new phone (particularly for popup warnings
and instructions) has what I can only describe as "double" and/or
"hollow" letters - the only one I could find to illustrate it is the
Windows font Colonna MT regular. At the tiny sizes on the phone and
particularly as it is often used all in upper case, it is all but
unreadable to me. I didn't see it on my old phone (Android 11 and
Microsoft launcher) at all.

Can anyone tell me a) (out of curiosity) what font it is and b) how the
hell I get rid of it?

  • Question
Make Lock Screen Music Player Full Screen?

Hi all,
Just switched from iOS to Android (wanted to try the ZFold4) and one of my biggest dislikes that I can't get past is the lockscreen music player. Is there anyway to display that full screen (like iPhones do)? I have YouTube Music but would certainly use whatever app would just make it fullscreen lol. Appreciate your help all!!!
1697731516814.png

Place to download mainstream apps other than Google Play?

I had to change country on my phone to download important apps to use in the country I was living in for a couple of months.

I'm back home now but Google won't let me change back to my original country for a year!

I have important apps to download and use but Google Play states they're not available in my country, which of course is the country I was in.

I think this is absolutely nuts and I'm assuming there was a way to avoid this while downloading the needed apps but it's too late now.

I'm also assuming there's no way around this with Google, other than maybe registering everything under a new Gmail account.

Therefore, is there a website where I can download well known apps without using Google Play?

For example, I'm in the UK and I need to download the EasyJet app.

Thanks very much and hope you can help.

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones

Filter