当前位置: 首页 > 知识库问答 >
问题:

Google Cloud Message-通知USB行为

唐利
2023-03-14

对不起,我的英语不太好...不管怎样。

我有一个android应用程序,它使用GCM接收推送通知。

步骤:1-用户单击登录按钮2-Android应用程序保存注册ID(工作)3-发送到WebService并放入数据库(工作)4-服务器应用程序(C#)发送所选注册ID的消息(工作)

5-设备正常接收通知,但仅当设备连接到USB(*问题*)

如果我没有通过usb连接设备,我会收到通知,但会显示一条空白消息。

我被封锁了一个星期。。有人能帮我吗?请。。

公共类GCMNotificationEntService扩展了IntentService{

public static  int NOTIFICATION_ID = 1;
private NotificationManager mNotificationManager;
NotificationCompat.Builder builder;

public GCMNotificationIntentService() {
    super("GcmIntentService");
}

public static final String TAG = "GCMNotificationIntentService";

@Override
protected void onHandleIntent(Intent intent) {
    Bundle extras = intent.getExtras();
    GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);

    String messageType = gcm.getMessageType(intent);

    if (!extras.isEmpty()) {
        if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR
                .equals(messageType)) {
            sendNotification("Send error: " + extras.toString());
        } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED
                .equals(messageType)) {
            sendNotification("Deleted messages on server: "
                    + extras.toString());
        } else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE
                .equals(messageType)) {

            for (int i = 0; i < 3; i++) {
                Log.i(TAG,
                        "Working... " + (i + 1) + "/5 @ "
                                + SystemClock.elapsedRealtime());
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                }

            }
            Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime());

            sendNotification(""+ extras.get(Config.MESSAGE_KEY));
            Log.i(TAG, "Received: " + extras.toString());
        }
    }
    GcmBroadcastReceiver.completeWakefulIntent(intent);
}

private void sendNotification(String msg) {
    Log.d(TAG, "Preparing to send notification...: " + msg);
    mNotificationManager = (NotificationManager) this
            .getSystemService(Context.NOTIFICATION_SERVICE);

    long[] pattern = {500,500,500,500,500,500,500,500,500};

    Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    Uri alarmSound2 = Uri.parse("android.resource://"  + getPackageName() + "/" + R.raw.mario);

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
            new Intent(this, lucasbergamo.minha_granna.Android.ac_Login.class), 0);

    String date = DateFormat.getDateTimeInstance().format(new Date());

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
            this)

            .setSmallIcon(R.drawable.coin_notification)
            .setContentTitle("Minha Granna - ")
            .setAutoCancel(true)
            .setLights(Color.BLUE, 500, 500)
            .setVibrate(pattern)
            .setSound(alarmSound2)
            .setStyle(new NotificationCompat.InboxStyle())
            .setContentText(msg);

    mBuilder.setContentIntent(contentIntent);

    if (NOTIFICATION_ID > 1073741824) {
        NOTIFICATION_ID = 0;
    }

    mNotificationManager.notify(NOTIFICATION_ID++, mBuilder.build());
    Log.d(TAG, "Notification sent successfully.");
}

}

公共类GcmBroadcastReceiver扩展WakefulBroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
    ComponentName comp = new ComponentName(context.getPackageName(),
            GCMNotificationIntentService.class.getName());
    startWakefulService(context, (intent.setComponent(comp)));
    setResultCode(Activity.RESULT_OK);
}

}

<application
    android:name="lucasbergamo.minha_granna.Entidades.User"
    android:allowBackup="true"
    android:icon="@drawable/icones_indicador_financeiro"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


    <activity
        android:name=".ac_Splash"
        android:label="@string/title_activity_splash" >
    </activity>
    <activity
        android:name=".ac_Login"
        android:label="@string/title_activity_splash" >

        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER"/>
            <action android:name="android.intent.action.MAIN"/>
        </intent-filter>


    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />


    <receiver
        android:name=".GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="lucasbergamo.minha_granna.Notification" />
        </intent-filter>
    </receiver>

    <service android:name=".GCMNotificationIntentService" />


</application>

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.LOCATION_HARDWARE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="18" />


<permission
    android:name="lucasbergamo.minha_granna.Notification.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />


<uses-permission android:name="lucasbergamo.minha_granna.Notification.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />


<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

我收到通知,只有当usb电缆连接。。。如果没有,我将收到空白消息。

谢谢

bergamo86@gmail.comskype lucazin

共有1个答案

慕通
2023-03-14

谢谢!包装名称不同!所以我解决了这个问题,只是设置当前的包。

谢谢大家!

 类似资料:
  • 我有一些与工作灯中推送通知相关的问题: > 当应用程序关闭且通知消息到达时,我通过单击应用程序图标而不是通知栏中的消息来启动应用程序,在我看来,我无法在应用程序中取回通知消息。(应用程序在后台运行时没有问题)步骤: a)订阅应用程序内部的事件源 b)关闭应用程序 c)向设备提交通知(“Hello”) d)在应用程序中,通知消息(“Hello”)显示在状态栏中。向下滑动状态栏。消息将显示在通知栏中

  • 问题内容: 我做出了一个管理命令,该命令从csv文件填充了我的一个模型。 我需要经常进行此更新,并且csv文件有成千上万的行。 有时可能需要10分钟以上才能完成填充。 我想添加一个功能,使我可以直接通过网站上传csv文件,并且在文件上传后,django应该运行该命令或至少运行其中的逻辑,然后填充数据库。 我将如何处理?我希望能够在上传文件后离开页面,并在任务完成后收到一封电子邮件。 问题答案: 你

  • 本文将主要介绍 service worker 的功能之一:通知 (notification),它允许服务器向用户提示一些信息,并根据用户不同的行为进行一些简单的处理。 通知比较常见的使用情景包括电商网站提醒用户一些关注商品的价格变化,或是在线聊天网站提醒用户收到了新消息等等。 如何使用? 使用 notification 本身非常简单,只需要一行代码,但在此之前需要一些准备工作。 检测浏览器兼容性,

  • 使用通知组件,你可以让消息看起来像iOS的推送通知一样。 通知组件JavaScript API 要想创建/关闭通知,我们需要调用相关的App方法 myApp.addNotification(parameters) - 通过指定的参数来创建/显示通知 parameters - 包含通知相关的参数的对象。必选。 方法返回一个动态创建的通知体的HTML元素 myApp.closeNotification

  • <section class="ui-notice"> <i></i> <p>请检查网络</p> <div class="ui-notice-btn"> <button class="ui-btn-primary ui-btn-lg">按钮</button> </div> </section>

  • 通知类型: 类型 描述 at At 我的 comment 评论我的 like 喜欢我的 system 系统通知 follow 用户粉丝 获取通知统计 GET /api/v2/user/notification-statistics 1 响应: Status: 200 OK { "at": { "badge": 4, "last_created_at": "2019-02-2