设备连接到USB

时间:2016-04-19 00:23:42

标签: android notifications usb adb samsung-mobile

我的应用中的通知消息字符串仅显示开发设备是否连接到USB。一旦我断开手机与USB的连接,即使应用程序打开,我的应用程序的通知也不再显示消息,它只是空白,但其他所有内容似乎都能正常通知。

在ADB中运行app时,我在logcat中没有错误,并且所有其他参数都成功传递给通知。唯一的问题是,如果手机通过USB连接到计算机,即使Android Studio / ADB未运行,setContentText()似乎也能正常工作。

开发设备是运行4.1.2的旧款三星SPH-L300(el-cheapo Virgin手机)。我没有其他设备来测试它。我使用Android Studio 1.5.1作为IDE。

我错过了一些清单元素吗?我听说过类似的问题,但反过来说,只有在没有连接到USB的情况下它才能工作。解决这个问题,在gradle.build中更改SDK最小值和目标,并没有解决我的问题(尽管我在尝试时可能会遗漏一些东西)。

使用来自警报管理器的广播接收器激活通知....这是代码:

package com.example.notificationApp;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.util.Log;

public class AlarmReceiver extends BroadcastReceiver {
public AlarmReceiver() {
}

@Override
public void onReceive(Context context, Intent intent) {

    // get the info needed to identify this specific reminder...
    Bundle bundle = intent.getExtras()
    int alarmID = bundle.getInt("reminderID");

    Intent returnIntent = new Intent(context, HomeActivity.class);
    PendingIntent pIntent = PendingIntent.getActivity(context, alarmID, returnIntent, 0);

    Uri alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    // make vibrate pattern...
    long[] pattern = {500,500,500,500,500,500,500,500,500};

    Notification notify = new NotificationCompat.Builder(context)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setTicker("Appointment reminder")
            .setContentTitle("Reminder...")
            .setContentText("TEST TEXT")
            .setSound(alarmUri)
            .setLights(Color.BLUE, 500, 500)
            .setVibrate(pattern)
            .setContentIntent(pIntent)
            .setAutoCancel(true)
            .build();

    NotificationManager notificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(alarmID, notify);
}

这是我的Manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.notificationApp">

<!-- Permission to start Alarm on device reboot -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="23" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity android:name=".HomeActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <receiver android:name=".AutoStart">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

    <receiver android:name=".CheckAlarmReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

    <receiver android:name=".AlarmReceiver" />

    <!--
         ATTENTION: This was auto-generated to add Google Play services to your project for
         App Indexing.  See https://g.co/AppIndexing/AndroidStudio for more information.
    -->
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

</application>

我对这一个感到困惑,任何人都有任何线索?在此先感谢!!

1 个答案:

答案 0 :(得分:1)

所以我发现了问题并希望发布,以防其他人最终遇到同样的问题。信不信由你,问题出在电话的开发人员设置中,并启用了Stay Awake模式。在开发人员设置中关闭Stay Awake并瞧!

我从我刚发现的另一篇文章中得到了这个想法:

https://stackoverflow.com/a/25566924/3716557

(请在链接中直接指出答案)