华为推送 坑点 自定义intent

  现在   AndroidManifest.xml 配置  


<activity
    android:name="com.jbs.ui.activity.RemarkListActivity"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="stateVisible|adjustPan|adjustUnspecified|stateHidden" >
     <intent-filter>
         <action
             android:name="android.intent.action.VIEW"/>
         <category
             android:name="android.intent.category.DEFAULT"/>
         <data android:scheme="customscheme"
             android:host="com.huawei.pushtest"     //固定的
             android:path="/notify_remark" />

     </intent-filter>
</activity>




然后  生成 url


///获取intent url
		Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("customscheme://com.huawei.pushtest/notify_remark?tittle=我是tille"));
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		String intenturl=intent.toUri(Intent.URI_INTENT_SCHEME);

		Log.e("intenturl","intenturl="+intenturl);


客户端获取参数

String index = "";
		Uri uri = getIntent().getData();
		if (uri != null) {
			index = uri.getQueryParameter("param");
			if (first&&TextUtil.isEmpty(index)) {
				if (index.equals("1")) {
					if (first) {
						//execute the task
						Log.e("执行跳转");
						setGrabOrderSelect(); //跳转抢单 刷新
						first=false;
					}

				} else if (index.equals("2")) {
						Log.e("执行跳转");
						setOrderSelect(0); //跳转
						first=false;
				}
			}
		}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的无activity应用,用于增强QQ的小米服务、vivo服务、OPPO服务、华为服务,并且用if语句判断省电政策是否关闭的Java代码示例: ```java public class App extends Application { private static final String TAG = "PushService"; @Override public void onCreate() { super.onCreate(); if (!isIgnoringBatteryOptimizations()) { requestIgnoreBatteryOptimizations(); } // 小米服务 if (shouldUseMiPush()) { MiPushClient.registerPush(this, "APP_ID", "APP_KEY"); Log.i(TAG, "MiPushClient initialized"); } // vivo服务 if (shouldUseVivoPush()) { PushClient.getInstance(getApplicationContext()).initialize(); Log.i(TAG, "VivoPushClient initialized"); } // OPPO服务 if (shouldUseOppoPush()) { PushManager.getInstance().register(this, "APP_ID", "APP_KEY"); Log.i(TAG, "OppoPushClient initialized"); } // 华为服务 if (shouldUseHuaweiPush()) { HMSAgent.init(this); Log.i(TAG, "HuaweiPushClient initialized"); } } private boolean isIgnoringBatteryOptimizations() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { String packageName = getPackageName(); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); if (pm != null && !pm.isIgnoringBatteryOptimizations(packageName)) { return false; } } return true; } private void requestIgnoreBatteryOptimizations() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { Intent intent = new Intent(); String packageName = getPackageName(); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); if (pm != null && !pm.isIgnoringBatteryOptimizations(packageName)) { intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:" + packageName)); startActivity(intent); } } } private boolean shouldUseMiPush() { // 判断是否是小米设备,如果是,则返回true,否则返回false return Build.MANUFACTURER.equalsIgnoreCase("Xiaomi"); } private boolean shouldUseVivoPush() { // 判断是否是vivo设备,如果是,则返回true,否则返回false String manufacturer = Build.MANUFACTURER; String model = Build.MODEL; return (manufacturer.equalsIgnoreCase("vivo") || model.toUpperCase().startsWith("VIVO")); } private boolean shouldUseOppoPush() { // 判断是否是OPPO设备,如果是,则返回true,否则返回false return Build.MANUFACTURER.equalsIgnoreCase("OPPO"); } private boolean shouldUseHuaweiPush() { // 判断是否是华为设备,如果是,则返回true,否则返回false return Build.MANUFACTURER.equalsIgnoreCase("Huawei") || Build.MANUFACTURER.equalsIgnoreCase("Honor"); } } ``` 上述代码中,我们创建了一个名为`App`的类,继承自`Application`类,并重写了`onCreate`方法。在`onCreate`方法中,我们首先判断省电政策是否关闭,如果没有关闭,则请求关闭省电政策。然后,我们根据设备厂商的不同,选择使用小米、vivo、OPPO、华为服务中的一个或多个。在使用服务时,我们需要根据各个厂商的要求,进行相应的初始化操作,例如在使用小米服务时,需要调用`MiPushClient.registerPush`方法进行注册;在使用vivo服务时,需要调用`PushClient.getInstance(getApplicationContext()).initialize()`方法进行初始化;在使用OPPO服务时,需要调用`PushManager.getInstance().register`方法进行注册;在使用华为服务时,需要调用`HMSAgent.init`方法进行初始化。需要注意的是,我们在使用`shouldUseXXXPush`方法判断是否选择使用某个厂商的服务时,要根据实际情况进行判断。同时,如果需要使用多个厂商的服务,也可以在代码中添加相应的判断语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值