2016-04-19 3 views
0

Строка уведомляющего сообщения в моем приложении показывает, только если устройство разработки подключено к USB. Как только я отключу телефон от USB, даже при открытии приложения уведомления для моего приложения больше не показывают сообщение, оно просто пустое, но все остальное, похоже, отлично работает для уведомления.уведомление только показывает, когда устройство подключено к USB

У меня нет ошибок в logcat при запуске приложения в ADB, и все остальные параметры успешно передаются в уведомление. Единственная проблема заключается в том, что setContentText() работает только в том случае, если телефон подключен к компьютеру через USB, даже если Android Studio/ADB не работает.

Устройство разработчика - старый Samsung SPH-L300 (мобильный телефон el-cheapo Virgin), работающий на 4.1.2. У меня нет другого устройства для тестирования. Я использую Android Studio 1.5.1 в качестве среды IDE.

У меня отсутствует элемент манифеста? Я слышал о подобной проблеме, но это было наоборот, где она работала только, когда НЕ подключалась к USB. Решение этого вопроса, заключающееся в том, чтобы изменить минимальный SDK и целевой объект в gradle.build, не решило мою проблему (хотя, я мог пропустить что-то при попытке).

Уведомление активируется с помощью широковещательного приемника от менеджера сигнализации .... вот код:

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

Так что я нашел проблему и хотел опубликовать ее на случай, если кто-то другой окажется в той же проблеме. Верьте или нет, проблема была в настройках разработчика телефона с включенным режимом Stay Awake. Выключите Stay Awake в настройках разработчика и вуаля!

Я получил идею от этого другого поста я только что нашел:

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

(Пожалуйста, направляйте upvotes в ответ на ссылку)

+0

Ваша идея does't работы. Я использую ваш код Но ничего не меняет –

+0

http://stackoverflow.com/users/7344925/ashish-shahi Проблема не в коде, а в настройках устройства. Вы испытываете аналогичную проблему с уведомлениями? – user3716557

+0

Я меняю устройство –

Смежные вопросы