2016-03-03 37 views
0

我無法顯示通知。在MainaActivit中,我沒有調用startService方法。我只能在後臺服務中顯示通知,即立即顯示電話開始通知。當我調試錯誤顯示在控制檯,我在下面提到。無法在android工作室顯示通知

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 

BeaconService.Java

public class BeaconService extends Service { 
    @Override 
    public IBinder onBind(Intent arg0) { 
     return null; 
    } 
    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     showNotification(); 
     return START_STICKY; 
    } 
    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show(); 
    } 
    private void showNotification() { 
     NotificationCompat.Builder mBuilder = 
       (NotificationCompat.Builder) new NotificationCompat.Builder(this) 
         .setSmallIcon(R.drawable.ic_loc) 
         .setContentTitle("Welcome to Brillio") 
         .setContentText("Hello Mansur, Welcome to Brillio.") 
         .setPriority(2) 
         .setOnlyAlertOnce(false); 
     Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     mBuilder.setSound(alarmSound); 
     mBuilder.setOngoing(true); 
     NotificationManager mNotificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     mNotificationManager.notify(2001, mBuilder.build()); 
    } 
} 

BeaconReceiver.java

public class BeaconReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent startServiceIntent = new Intent(context, BeaconService.class); 
     context.startService(startServiceIntent); 
    } 
} 

menifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<service 
      android:name=".BeaconService" 
      android:enabled="true" 
      android:exported="true" /> 
     <receiver android:name=".BeaconReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 

錯誤顯示在控制檯

DEVICE SHELL COMMAND: am start -D -n "com.example.serviceexamp/com.example.serviceexamp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 
Client not ready yet. 
open: Permission denied 
open: Permission denied 

回答

0

清單文件中的服務類名稱與您在檢查後定義的服務類不同。

實際服務類:公共類BeaconService延伸服務在清單中定義

Service類:機器人:名字= 「爲MyService。」

+0

<服務 機器人:名稱= 「BeaconService。」 機器人:啓用= 「true」 android:exported =「true」/> 否對於那個 – Alam

+0

可以放置整個清單文件的快照 – srinivas