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: 失败!!!!!!");
}
}
});
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: 主题取消订阅失败");
}
});
}
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.release
debuggable true
}
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"