0

我整天都在研究这个问题,无法弄清楚断开连接的位置。请在我的磨损应用程序方法下方找到我从广播接收器调用通知请求的方法:

private void createWearNotification(final String notificationString, final String name, final String extensionRequested) {

    // Wear 2.0 allows for in-line actions, which will be used for "reply".
    NotificationCompat.Action.WearableExtender inlineNotification =
            new NotificationCompat.Action.WearableExtender()
                    .setHintDisplayActionInline(true)
                    .setHintLaunchesActivity(true);

    //Create View Message Intent
    Intent intent = new Intent(this, ViewMessageActivity.class);
    PendingIntent replyIntent = PendingIntent.getActivity(this, notificationId, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    // Add an action to allow replies.
    NotificationCompat.Action replyAction =
            new NotificationCompat.Action.Builder(
                    R.drawable.ic_curved_arrow_right,
                    getString(R.string.reply_action),
                    replyIntent)
                    .extend(inlineNotification)
                    .build();

    int notificationId = 001;
    // The channel ID of the notification.
    String id = "my_channel_01";

    NotificationCompat.Builder builder =
            new NotificationCompat.Builder(getApplicationContext())
                    .setSmallIcon(R.drawable.ic_email)
                    .setContentTitle("")
                    .setDefaults(NotificationCompat.DEFAULT_VIBRATE)
                    .setContentText(notificationString)
                    .addAction(replyAction)
                    .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                    .setContentIntent(replyIntent);

    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
    notificationManager.notify(notificationId, builder.build());
}

我的 androidmanifext.xml 文档中有以下声明:

    <meta-data
        android:name="com.google.android.wearable.standalone"
        android:value="true" />

这是我的磨损应用程序的 build.gradle 依赖项:

  • 实现文件树(目录:'libs',包括:['*.jar'])
  • 实施 'com.google.android.support:wearable:2.3.0'
  • 实施 'com.google.android.gms:play-services-wearable:15.0.1'
  • 实施 'com.android.support:percent:27.1.1'
  • 实施 'com.android.support:support-v4:27.1.1'
  • 实施 'com.android.support:recyclerview-v7:27.1.1'
  • 实施 'com.android.support:wear:27.1.1'
  • compileOnly 'com.google.android.wearable:wearable:2.3.0'
  • 实施 'com.android.support:appcompat-v7:27.1.1'
  • 实施 'com.android.support.constraint:constraint-layout:1.1.1'
  • 实施 'com.android.support:cardview-v7:27.1.1'
  • 实施 'com.android.support:support-compat:27.1.1'
  • 实施 'com.android.support:support-core-utils:27.1.1'
  • 实施 'com.android.support:support-core-ui:27.1.1'

我的 Logcat 文件中也有很多奇怪的评论:

  • I/vndksupport: 没有为此进程配置 sphal 命名空间。而是从当前命名空间加载 /vendor/lib/hw/gralloc.mt2601.so。

我已经尝试了所有方法 - 有趣的是,当我从主手机应用程序将其作为常规通知运行时,它可以正常工作。我能够打开我使用布局的应用程序 - 这只发生在通知中?我错过了什么?

  • 我的图书馆参考文献之一是否与另一个图书馆参考文献冲突?
  • 是否有规则禁止我们从 Wear 应用打开通知,而不是常规的 Android 应用?
  • 有没有办法确保界面底部的通知栏被启用?

非常感谢任何想法和建议!

4

1 回答 1

0

是的 。. . 所以 。. . 我没有分配通知渠道

Android O 中的 NotificationChannel 问题

如果您在较新的 API 版本 (API 26+) 中没有通知通道,则不允许显示您的通知。

当然,新文档也指出了这一点:) 否则,您必须注意到其他一百万条似乎没有过度负面影响的微小错误消息:

06-20 20:15:16.251 296-900/? E/NotificationService:没有找到 pkg=com.xxxx.xxxxxxx 的频道,channelId=null,id=1,tag=null,opPkg=com.xxxx.xxxxxxx,callingUid=10049,userId=0,incomingUserId=0,notificationUid= 10049,通知=通知(通道=null pri=0 contentView=null 振动=默认声音=null 默认值=0x2 标志=0x0 颜色=0x00000000 动作=1 vis=PRIVATE)

此外,将我的 minSdkVersion 更改为 26 并最终得到以下 Gradle 依赖项声明:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.android.support:wearable:2.3.0'
    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
    implementation 'com.android.support:percent:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:wear:27.1.1'
    compileOnly 'com.google.android.wearable:wearable:2.3.0'
    implementation 'com.android.support:appcompat-v7:27.1.1'
}
于 2018-06-21T01:34:43.377 回答