2016-04-19 3 views
0

Die Benachrichtigungszeichenfolge in meiner App wird nur angezeigt, wenn das Entwicklungsgerät an USB angeschlossen ist. Sobald ich das Telefon von USB entferne, auch wenn die App geöffnet ist, wird die Nachricht in den Benachrichtigungen für meine App nicht mehr angezeigt, sie ist einfach leer, aber alles andere scheint für die Benachrichtigung zu funktionieren.Benachrichtigungen werden nur angezeigt, wenn das Gerät an USB angeschlossen ist

Ich habe keine Fehler in Logcat beim Ausführen von App in ADB, und alle anderen Parameter erfolgreich an die Benachrichtigung übergeben. Das einzige Problem ist, dass setContentText() nur funktioniert, wenn das Telefon über USB mit dem Computer verbunden ist, auch wenn Android Studio/ADB nicht läuft.

Das Dev-Gerät ist ein altes Samsung SPH-L300 (el-cheapo Virgin Handy) mit 4.1.2. Ich habe kein anderes Gerät, um es zu testen. Ich verwende Android Studio 1.5.1 als IDE.

Fehle ich irgendein manifest Element? Ich habe von einem ähnlichen Problem gehört, aber es war anders herum, wo es nur funktionierte, wenn es NICHT an USB angeschlossen war. Die Lösung dafür, das SDK Minimum und Ziel in Gradle.build zu ändern, hat mein Problem nicht gelöst (obwohl ich etwas verpasst haben könnte, als ich das versuchte).

Die Benachrichtigung einen Rundfunkempfänger unter Verwendung von einem Alarmmanager aktiviert ist .... hier ist der Code:

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); 
} 

Und hier ist mein 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> 

Ich bin auf diesen hier gestoßen, hat jemand irgendwelche Hinweise? Danke im Voraus!!

Antwort

1

Also ich fand das Problem und wollte es für den Fall, dass jemand anderes mit dem gleichen Problem endet. Ob Sie es glauben oder nicht, das Problem lag in den Entwicklereinstellungen des Smartphones mit aktiviertem Stay Awake-Modus. Deaktivieren Sie in Entwicklereinstellungen wach bleiben und voila!

hatte ich die Idee von diesem anderen Beitrag habe ich gerade gefunden:

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

(alle upvotes in Verbindung, um die Antwort richten Sie bitte)

+0

Ihre Idee does't Arbeit. Ich benutze Deinen Code aber ändert nichts –

+0

http://stackoverflow.com/users/7344925/ashish-shahi Das Problem lag nicht im Code, sondern in den Geräteeinstellungen. Haben Sie ein ähnliches Problem mit Benachrichtigungen? – user3716557

+0

Ich bin Gerät wechseln –

Verwandte Themen