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

Google Pay Android Tipping

I've followed this google pay android tutorial: https://developers.google.com/pay/api/android/guides/tutorial#java and I'm confused af. I've got the user credit card data in a tokenized form, great, and now what? Why is there no tutorials online that explain setting up google pay from start to finish?

I want users to be able to pay whatever they like in-app, like a tipping system.

Anyone have any solid resources on this use case?

Thanks a bunch!

Has T-Mobile Coverage Improved Recently Compared to Verizon and AT&T?

I've used all the carriers over the years and 3 years ago settled on Verizon because it had the best coverage outside of cities. Seems like Tmobile in the past really concentrated on building their network in cities and marketing to mainly urban customers. When I'd get into some of the outer suburbs and even more so, rural areas while on road trips with people, the people with Verizon almost always had a signal, closely followed by AT&T and Tmobile would frequently drop out the further you got from the city.

I have a factory unlocked S20+ that supports CDMA and GSM and all the 5G bands. I'm disappointed that Verizon has basically bamboozled it's customers into thinking they have super fast 5G everywhere, when in reality their 'Ultra Wide' millimeter band 5G is only available in like 0.5% of the country, and their 'Nationwide 5G' is basically rebranded 4G LTE+, but using sub 6 4G frequencies with Dynamic Signal Sharing (DSS) resulting in speeds that are not much different than 4G LTE+.

I've read that T-mobile has invested in mid-band 5G so they have a 5G network that has a balance between coverage and speed as opposed to Verizon's current, 'all or almost nothing' coverage/speed balance.
I'm wondering from those that in the past few months that have gone between Verizon and T-Mobile (either direction) that have traveled outside the city, has T-Mobile's coverage improved due to the Sprint Merger?

I believe Sprint is CDMA so theoretically I'm thinking T-Mobile might be the best choice considering I have an unlocked phone that support TMobile's GSM towers and Sprints CDMA towers. But has Tmobile truly integrated all the towers for these dual-network capable phones? Or is the T-Mobile service still significantly behind Verizon and AT&T as far as total coverage outside the cities?

I have a new Pixel 4a 5G on TMo. I'm primarily in the burbs outside LA and only get LTE. Last week I was in the city and the icon switched from LTE to 5G. I ran a speed test and the 5G was no better than LTE. KIND OF DISAPPOINTED!

Apps unable to add rewarded Video Add.

Dear Sir kindly help me how can i add video rewarded add in following code?
i wants to appear video ads without earning points system.
thanks

Code:
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;


public class Activity2 extends AppCompatActivity {
    private SoundPool soundPool;
    private InterstitialAd mInterstitialAd;
    private AdView mAdView2;
    private int  sound1, sound2, soundd2, sound3, sound4, sound5, sound6, sound7, sound8, sound9,
            sound10, sound11, sound12, sound13, sound14, sound15, sound16, sound17, sound18,
            sound19, sound20, sound21, sound22, sound23, sound24, sound25, sound26, sound27,
            sound28, sound29, sound30, sound31, sound32, sound33, sound34, sound35, sound36, sound37,
            sound38, sound39, sound40, sound41, sound42, sound43, sound44, sound45, sound46, sound47,
            sound48, sound49, sound50, sound51, sound52;
    private int sound3StreamId;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_2);

        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("ca-app-pub-1195149240883996/7961464547");
        mInterstitialAd.loadAd(new AdRequest.Builder().build());

        AdView adView = new AdView(this);

        adView.setAdSize(AdSize.BANNER);

        adView.setAdUnitId("ca-app-pub-1195149240883996/6476126518");

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });


        mAdView2 = findViewById(R.id.mAdView2);
        AdRequest adRequest = new AdRequest.Builder().build();

        mAdView2.loadAd(adRequest);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            AudioAttributes audioAttributes = new AudioAttributes.Builder()
                    .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
                    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                    .build();

            soundPool = new SoundPool.Builder()
                    .setMaxStreams(1)
                    .setAudioAttributes(audioAttributes)
                    .build();
        } else {
            soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
        }


        sound1 = soundPool.load(this, R.raw.sound1, 1);
        sound2 = soundPool.load(this, R.raw.sound2, 1);
        soundd2 = soundPool.load(this, R.raw.soundd2, 1);
        sound3 = soundPool.load(this, R.raw.sound3, 1);
        sound4 = soundPool.load(this, R.raw.sound4, 1);
        sound5 = soundPool.load(this, R.raw.sound5, 1);
        sound6 = soundPool.load(this, R.raw.sound6, 1);
        sound7 = soundPool.load(this, R.raw.sound7, 1);
        sound8 = soundPool.load(this, R.raw.sound8, 1);
        sound9 = soundPool.load(this, R.raw.sound9, 1);
        sound10 = soundPool.load(this, R.raw.sound10, 1);
        sound11 = soundPool.load(this, R.raw.sound11, 1);
        sound12 = soundPool.load(this, R.raw.sound12, 1);
        sound13 = soundPool.load(this, R.raw.sound13, 1);
        sound14 = soundPool.load(this, R.raw.sound14, 1);
        sound15 = soundPool.load(this, R.raw.sound15, 1);
        sound16 = soundPool.load(this, R.raw.sound16, 1);
        sound17 = soundPool.load(this, R.raw.sound17, 1);
        sound18 = soundPool.load(this, R.raw.sound18, 1);
        sound19 = soundPool.load(this, R.raw.sound19, 1);
        sound20 = soundPool.load(this, R.raw.sound20, 1);
        sound21 = soundPool.load(this, R.raw.sound21, 1);
        sound22 = soundPool.load(this, R.raw.sound22, 1);
        sound23 = soundPool.load(this, R.raw.sound23, 1);
        sound24 = soundPool.load(this, R.raw.sound24, 1);
        sound25 = soundPool.load(this, R.raw.sound25, 1);
        sound26 = soundPool.load(this, R.raw.sound26, 1);
        sound27 = soundPool.load(this, R.raw.sound27, 1);
        sound28 = soundPool.load(this, R.raw.sound28, 1);
        sound29 = soundPool.load(this, R.raw.sound29, 1);
        sound30 = soundPool.load(this, R.raw.sound30, 1);
        sound31 = soundPool.load(this, R.raw.sound31, 1);
        sound32 = soundPool.load(this, R.raw.sound32, 1);
        sound33 = soundPool.load(this, R.raw.sound33, 1);
        sound34 = soundPool.load(this, R.raw.sound34, 1);
        sound35 = soundPool.load(this, R.raw.sound35, 1);
        sound36 = soundPool.load(this, R.raw.sound36, 1);
        sound37 = soundPool.load(this, R.raw.sound37, 1);
        sound38 = soundPool.load(this, R.raw.sound38, 1);
        sound39 = soundPool.load(this, R.raw.sound39, 1);
        sound40 = soundPool.load(this, R.raw.sound40, 1);
        sound41 = soundPool.load(this, R.raw.sound41, 1);
        sound42 = soundPool.load(this, R.raw.sound42, 1);
        sound43 = soundPool.load(this, R.raw.sound43, 1);
        sound44 = soundPool.load(this, R.raw.sound44, 1);
        sound45 = soundPool.load(this, R.raw.sound45, 1);
        sound46 = soundPool.load(this, R.raw.sound46, 1);
        sound47 = soundPool.load(this, R.raw.sound47, 1);
        sound48 = soundPool.load(this, R.raw.sound48, 1);
        sound49 = soundPool.load(this, R.raw.sound49, 1);
        sound50 = soundPool.load(this, R.raw.sound50, 1);
        sound51 = soundPool.load(this, R.raw.sound51, 1);
        sound52 = soundPool.load(this, R.raw.sound52, 1);
    }

    public void playSound(View v){

        ImageView im=(ImageView)findViewById(R.id.imageView1);





        switch (v.getId()) {


            case R.id.button_sounds2:
            im.setImageResource(R.drawable.image1);
            soundPool.play(sound2, 1, 1, 0, 0, 1);
            //soundPool.pause(sound3StreamId);
            soundPool.autoPause();
            break;

            case R.id.button_sound1:
                im.setImageResource(R.drawable.image1);
                soundPool.play(sound1, 1, 1, 0, 0, 1);
                //soundPool.pause(sound3StreamId);
                soundPool.autoPause();
                break;

            case R.id.button_sound2:
                im.setImageResource(R.drawable.image2);
                soundPool.play(soundd2, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound3:
                im.setImageResource(R.drawable.image3);
                sound3StreamId = soundPool.play(sound3, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound4:
                im.setImageResource(R.drawable.image4);
                soundPool.play(sound4, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound5:
                im.setImageResource(R.drawable.image5);
                soundPool.play(sound5, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound6:
                im.setImageResource(R.drawable.image6);
                soundPool.play(sound6, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound7:
                im.setImageResource(R.drawable.image7);
                soundPool.play(sound7, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound8:
                im.setImageResource(R.drawable.image8);
                soundPool.play(sound8, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound9:
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                } else {
                im.setImageResource(R.drawable.image88);
                soundPool.play(sound9, 1, 1, 0, 0, 1);}
                break;
            case R.id.button_sound10:
                im.setImageResource(R.drawable.image9);
                soundPool.play(sound10, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound11:
                im.setImageResource(R.drawable.image10);
                soundPool.play(sound11, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound12:
                im.setImageResource(R.drawable.image11);
                soundPool.play(sound12, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound13:
                im.setImageResource(R.drawable.image12);
                soundPool.play(sound13, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound14:
                im.setImageResource(R.drawable.image13);
                soundPool.play(sound14, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound15:
                im.setImageResource(R.drawable.image14);
                soundPool.play(sound15, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound16:
                im.setImageResource(R.drawable.image15);
                soundPool.play(sound16, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound17:
                im.setImageResource(R.drawable.image16);
                soundPool.play(sound17, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound18:
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                } else {
                im.setImageResource(R.drawable.image17);
                soundPool.play(sound18, 1, 1, 0, 0, 1);}
                break;
            case R.id.button_sound19:
                im.setImageResource(R.drawable.image18);
                soundPool.play(sound19, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound20:
                im.setImageResource(R.drawable.image19);
                soundPool.play(sound20, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound21:
                im.setImageResource(R.drawable.image20);
                soundPool.play(sound21, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound22:
                im.setImageResource(R.drawable.image21);
                soundPool.play(sound22, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound23:
                im.setImageResource(R.drawable.image22);
                soundPool.play(sound23, 1, 1, 0, 0, 1);
                break;

            case R.id.button_sound24:
                im.setImageResource(R.drawable.image24);
                soundPool.play(sound24, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound25:
                im.setImageResource(R.drawable.image25);
                soundPool.play(sound25, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound26:
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                } else {
                im.setImageResource(R.drawable.image26);
                soundPool.play(sound26, 1, 1, 0, 0, 1);}
                break;
            case R.id.button_sound27:
                im.setImageResource(R.drawable.image27);
                soundPool.play(sound27, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound28:
                im.setImageResource(R.drawable.image28);
                soundPool.play(sound28, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound29:
                im.setImageResource(R.drawable.image29);
                soundPool.play(sound29, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound30:
                im.setImageResource(R.drawable.image30);
                soundPool.play(sound30, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound31:
                im.setImageResource(R.drawable.image31);
                soundPool.play(sound31, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound32:
                im.setImageResource(R.drawable.image32);
                soundPool.play(sound32, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound33:
                im.setImageResource(R.drawable.image33);
                soundPool.play(sound33, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound34:
                im.setImageResource(R.drawable.image34);
                soundPool.play(sound34, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound35:
                im.setImageResource(R.drawable.image35);
                soundPool.play(sound35, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound36:
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                } else {
                im.setImageResource(R.drawable.image37);
                soundPool.play(sound36, 1, 1, 0, 0, 1);}
                break;
            case R.id.button_sound37:
                im.setImageResource(R.drawable.image36);
                soundPool.play(sound37, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound38:
                im.setImageResource(R.drawable.image38);
                soundPool.play(sound38, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound39:
                im.setImageResource(R.drawable.image39);
                soundPool.play(sound39, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound40:
                im.setImageResource(R.drawable.image40);
                soundPool.play(sound40, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound41:
                im.setImageResource(R.drawable.image41);
                soundPool.play(sound41, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound42:
                im.setImageResource(R.drawable.image42);
                soundPool.play(sound42, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound43:
                im.setImageResource(R.drawable.image43);
                soundPool.play(sound43, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound44:
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                } else {
                im.setImageResource(R.drawable.image44);
                soundPool.play(sound44, 1, 1, 0, 0, 1);}
                break;
            case R.id.button_sound45:
                im.setImageResource(R.drawable.image45);
                soundPool.play(sound45, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound46:
                im.setImageResource(R.drawable.image46);
                soundPool.play(sound46, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound47:
                im.setImageResource(R.drawable.image47);
                soundPool.play(sound47, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound48:
                im.setImageResource(R.drawable.image48);
                soundPool.play(sound48, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound49:
                im.setImageResource(R.drawable.image49);
                soundPool.play(sound49, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound50:
                im.setImageResource(R.drawable.image50);
                soundPool.play(sound50, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound51:
                im.setImageResource(R.drawable.image51);
                soundPool.play(sound51, 1, 1, 0, 0, 1);
                break;
            case R.id.button_sound52:
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                } else {
                im.setImageResource(R.drawable.image52);
                soundPool.play(sound52, 1, 1, 0, 0, 1);}
                break;
        }

        mInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                // Load the next interstitial.
                mInterstitialAd.loadAd(new AdRequest.Builder().build());
            }

        });

    }



    @Override
    protected void onDestroy() {
        super.onDestroy();
        soundPool.release();
        soundPool = null;
    }

}

Tablet help

As I thought, they're no-name devices from China. I'm certain Sky Go a no go on these. You may want to contact Sky customer service and enquire about it, as to what they do actually support. As for the "rooted device" error, try a Root Checker app, and see what that reports. Some no-name devices have been known to come rooted from the factory. Or it maybe that Sky Go just can't identify a maker, for their approved devices, and it's assuming it's a rooted and modified device.
Ok. Thanks. I will give Sky a call and see if they can help in any way. I was hoping that there would be some super tech savvy person who could work some magic for me. Lol.

Galaxy S20 FE Android 11 & UI 3.0 Beta roll out

With the news that Samsung have started to roll out the stable Android 11 & UI 3.0 releases. comes the news that the Beta test firmware release has started for the Samsung Galaxy S20 FE model.

Initially, this has started rolling out in Samsung's home country, South Korea.

See... S20FE One UI 3 beta started in South Korea

This bodes well for the Galaxy S20 FE users as it puts them on the road to a stable release in early 2021.

Users should check their Samsung Members app in case they need to sign up for the Beta test firmware. The Beta test on the Galaxy S20's was limited to 5 or 6 countries and unbranded Samsung models and therefore the Beta may not be available to everyone.

Sell note 10

Well, in case you asked this question an year ago, I would also say that you just have to go for eBay, and everything will be just fine. However, recently I mentioned that there are tons of scammers on ebay. It is something that I have never before experienced on eBay. Also, they increased every single charge. I would actually recommend you mercari. I have started using this platform rather recently, and I like it. I started using it after I read a mercari review. It really looks to be the best one right now.

Get Battery Status to use as trigger

I want to use my phone going on charge as a trigger. The problem is that my phone doesn't have wireless charging on board so I added a Wireless Charging Receiver that plugs into phone. Unfortunately, my phone doesn't register as charging when my phone is placed on a wireless charging mat. I assume that the charge is not large enough to register.

I am hoping that there is a way to get that charging value using Tasker but I have been unable to find a method by Googling. I have found the Battery Monitor v1.3 but can't figure out how to get any usable values out of it.

Any suggestions?

Never mind my previous post, I should have better read what you'd written. That said, wouldn't STATE > POWER > BATTERY LEVEL work as a trigger?

Sumsung phones with Android 10 are insecure

actually my phone will not even unlock after a phone call. i can't even use the "apps running" feature as it is not an actual button like on some of the older phones or maybe even lower based sammy phones. so i think your issue @Evan Gyde is just with your phone....whatever model sammy you have.

maybe its time for an upgrade? something more secure.

Filter

Back
Top Bottom