登录页面 Java代码

登录

<Button
    android:id="@+id/bt_1"
    android:text="静默登录"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<Button
    android:id="@+id/bt_2"
    android:text="ID登录"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<Button
    android:id="@+id/bt_3"
    android:text="Code登录"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<Button
    android:id="@+id/bt_4"
    android:text="获取Token"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<Button
    android:id="@+id/bt_5"
    android:text="主题订阅"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<Button
    android:id="@+id/bt_6"
    android:text="取消订阅"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<Button
    android:id="@+id/bt_7"
    android:text="检查IAP"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<Button
    android:id="@+id/bt_8"
    android:text="展示商品"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<Button
    android:id="@+id/bt_9"
    android:text="购买商品"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

MainActivity

public class MainActivity extends AppCompatActivity {

    private Button bt1;
    private static final String TAG = "MainActivity";
    private Button bt2;
    private AccountAuthParams authParams;
    private AccountAuthService service;
    private Button bt3;
    private Button bt4;
    private Button bt5;
    private Button bt6;
    private Button bt7;
    private Button bt8;
    private Button bt9;

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

    private void initView() {
        bt1 = findViewById(R.id.bt_1);
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                signlnCode();//查询你上过一次的登录信息
            }
        });
        bt2 = findViewById(R.id.bt_2);
        bt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                idTokenLogin();//idToken登录
            }
        });

        bt3 = findViewById(R.id.bt_3);
        bt3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CodeLogin();
            }
        });
        bt4 = findViewById(R.id.bt_4);
        bt4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getToken();
            }
        });
        bt5 = findViewById(R.id.bt_5);
        bt5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MyHmsMessageService.subscribe(MainActivity.this);
            }
        });
        bt6 = findViewById(R.id.bt_6);
        bt6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MyHmsMessageService.unsubscribe(MainActivity.this);
            }
        });
        bt7 = findViewById(R.id.bt_7);
        bt7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getIAP();
            }
        });
        bt8 = findViewById(R.id.bt_8);
        bt8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showProduct();
            }
        });
        bt9 = findViewById(R.id.bt_9);
        bt9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                goBuyProduct();
            }
        });
    }

    public void signlnCode() {
        authParams = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
                .setProfile()
                .setAuthorizationCode()
                .createParams();
        service = AccountAuthManager.getService(this, authParams);
        Task<AuthAccount> task = service.silentSignIn();
        task.addOnCompleteListener(new OnCompleteListener<AuthAccount>() {
            @Override
            public void onComplete(Task<AuthAccount> task) {
                if (task.isSuccessful()) {
                    Log.i(TAG, "display name: " + task.getResult().getDisplayName());
                } else {
                    Log.e(TAG, task.getException().getMessage());
                }
            }
        });
    }

    private void idTokenLogin() {
        authParams = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
                .setIdToken().createParams();
        service = AccountAuthManager.getService(MainActivity.this, authParams);
        startActivityForResult(service.getSignInIntent(), 0);
    }

    private void CodeLogin() {
        authParams = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
                .setProfile()
                .setAuthorizationCode()
                .createParams();
        service = AccountAuthManager.getService(this, authParams);
        startActivityForResult(service.getSignInIntent(), 0);
    }

    private void getToken() {
        new Thread() {
            @Override
            public void run() {
                try {
                    String appId = AGConnectServicesConfig.fromContext(MainActivity.this).getString("client/app_id");
                    String token = HmsInstanceId.getInstance(MainActivity.this).getToken(appId, "HCM");
                    Log.i(TAG, "run: ==================" + token);
                } catch (ApiException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

    private void getIAP() {
        Task<IsEnvReadyResult> envReady = Iap.getIapClient(this).isEnvReady();
        envReady.addOnCompleteListener(new OnCompleteListener<IsEnvReadyResult>() {
            @Override
            public void onComplete(Task<IsEnvReadyResult> task) {
                if (task.isSuccessful()) {
                    Log.i(TAG, "onComplete: IAP成功");
                }
            }
        });
    }

    private void showProduct() {
        List<String> list = new ArrayList<>();
        list.add("qq");
        ProductInfoReq req = new ProductInfoReq();
        req.setPriceType(1);
        req.setProductIds(list);
        Task<ProductInfoResult> spTask = Iap.getIapClient(MainActivity.this).obtainProductInfo(req);
        spTask.addOnCompleteListener(new OnCompleteListener<ProductInfoResult>() {
            @Override
            public void onComplete(Task<ProductInfoResult> task) {
                if (task.isSuccessful()) {
                    for (ProductInfo productInfo : task.getResult().getProductInfoList()) {
                        Log.i(TAG, "name: "+productInfo.getProductName());
                        Log.i(TAG, "desc: "+productInfo.getProductDesc());
                    }
                } else {
                    Log.e(TAG, task.getException().getMessage());
                }
            }
        });
    }

    private void goBuyProduct(){
        PurchaseIntentReq req=new PurchaseIntentReq();
        req.setPriceType(1);
        req.setProductId("qq");
        Task<PurchaseIntentResult> purchaseIntent = Iap.getIapClient(MainActivity.this).createPurchaseIntent(req);
        purchaseIntent.addOnCompleteListener(new OnCompleteListener<PurchaseIntentResult>() {
            @Override
            public void onComplete(Task<PurchaseIntentResult> task) {
                if (task.isSuccessful()){
                    Status status = task.getResult().getStatus();
                    try {
                        status.startResolutionForResult(MainActivity.this,0);
                    } catch (IntentSender.SendIntentException e) {
                        e.printStackTrace();
                    }
                }else {
                    Log.i(TAG, "onComplete: 失败!!!!!!");
                }
            }
        });
    }

MyHmsMessageService

public class MyHmsMessageService extends HmsMessageService {
    private static final String TAG = "MyHmsMessageService";

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Map<String, String> dataOfMap = remoteMessage.getDataOfMap();
        Log.i(TAG, "onMessageReceived: "+dataOfMap.get("name"));
    }

    public static void subscribe(Context context){
        Task<Void> task = HmsMessaging.getInstance(context).subscribe("aa");
        task.addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Log.i(TAG, "onSuccess: 主题订阅成功");
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(Exception e) {
                Log.i(TAG, "onFailure: 主题订阅失败");
            }
        });
    }

    //主题退订
    public static void unsubscribe(Context context){
        Task<Void> task = HmsMessaging.getInstance(context).unsubscribe("aa");
        task.addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Log.i(TAG, "onSuccess: 主题取消订阅成功");
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(Exception e) {
                Log.i(TAG, "onFailure: 主题取消订阅失败");
            }
        });
    }
}

Manifest

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<meta-data
    android:name="com.huawei.hms.client.channel.androidMarket"
    android:value="false"/>

<service
    android:name="com.example.cbv.MyHmsMessageService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.huawei.push.action.MESSAGING_EVENT"/>
    </intent-filter>
</service>

classpath "com.huawei.agconnect:agcp:1.5.2.300"
id "com.huawei.agconnect"

implementation "com.huawei.hms:iap:5.1.0.300"
implementation "com.huawei.hms:push:5.0.4.302"
implementation "com.huawei.hms:hwid:5.1.0.301"
implementation "com.huawei.agconnect:agconnect-core:1.5.2.300"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值