2013-08-21 15 views
11

Ok widziałem wiele osób po prostu odrzucić to pytanie mówiącJak utworzyć powiadomienie ikonę paska stanu po prawej stronie?

„to zarezerwowane dla komponentu OS”

„wymaga dostępu do źródła”

Dobrze mieć dostęp do źródło i mogę ustawić dowolną aplikację lub widget jako aplikację systemową. Więc jak mam postąpić, aby mój widget wyświetlał powiadomienia po prawej stronie?

EDYTOWANIE: ok ppl idą w złym kierunku, więc źle dodaj tutaj kontekst. . . spojrzeć na numer telefonu. . . Widzisz cały czas sygnał Wi-Fi i sygnał telefoniczny po prawej stronie telefonu. Chcę, żeby mój sygnał był tam również pokazywany. . . wraz z sygnałami systemowymi. . Mam nowy chip sprzętowy w tablecie, który produkuje moja firma i muszę stale wyświetlać siłę sygnału, tak jak sygnał telefonu. Zostanie zintegrowany ze źródłem tabletu Android.

+0

Czy mówisz o tym, jak zrobić pasek stanu w stylu Android TABLET? – Robin

+0

Nie. . . spójrz na telefon. . . widzisz sygnał wifi i sygnał telefoniczny po prawej stronie telefonu przez cały czas w prawo. Chcę, żeby mój sygnał był tam również pokazywany. . . wraz z sygnałami systemowymi. . Mam nowy chip sprzętowy w tablecie, który produkuje moja firma i zawsze mam siłę sygnału, tak jak sygnał telefoniczny. zostanie zintegrowany ze źródłem androida. –

+0

wiele widoków i brak odpowiedzi. . . Czy ktoś może zagłosować na to pytanie, aby ludzie poczuli potrzebę odpowiedzi?albo jak działa gra z nagrodami? –

Odpowiedz

6

Być może trzeba odwołać się do kodu kodu źródłowego Androida na pasku stanu telefonu, w https://android.googlesource.com/platform/frameworks/base/+/android-4.3_r3.1/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

I przyjrzeć się metodami jak

addIcon 
updateIcon 
removeIcon 

Nie jest to łatwe zadanie, ponieważ trzeba aby dodać wiele rzeczy samemu.

+0

W końcu Dobry Prowadzić. . tnx mate :) –

+0

@PrinceChampappilly jakikolwiek postęp z tą odpowiedzią? vallathum nadakkumo? –

+0

@VishnudevK vallathum nadakuvo ennu chodicha. . .Tak jest odpowiedź. . . Ale musisz dodać niestandardowego słuchacza w systemie Android. To, co zrobiłem, to ściągnięcie kodu dla dual sim telefonu i zastąpienie drugiego powiadomienia o sygnale sims moim niestandardowym powiadomieniem. . w ten sposób wystarczy edytować tę instancję w całym kodzie. Nie zakończyłem całego procesu. . . Zostałem ponownie przeniesiony do innego projektu w połowie. –

-1
public class GCMIntentService extends GCMBaseIntentService { 

public static final String PROJECT_ID = "4898989797"; 
private static final String TAG = "GCMIntentService"; 
ModelNotificationMessage modelNotificationMessage; 

public GCMIntentService() { 
    super(PROJECT_ID); 
    Log.d(TAG, "GCMIntentService init"); 
} 

@Override 
protected void onError(Context ctx, String sError) { 
    // TODO Auto-generated method stub 
    Log.d(TAG, "Error: " + sError); 

} 

@Override 
protected void onMessage(Context ctx, Intent intent) { 

    Log.d(TAG, "Message Received"); 

    String message = intent.getStringExtra("message"); 

    Log.d(TAG, "Message Received" + message); 

    sendNotification(message); 
    Intent broadcastIntent = new Intent(); 
    broadcastIntent.setAction("GCM_RECEIVED_ACTION"); 

    broadcastIntent.putExtra("gcm", message); 

    ctx.sendBroadcast(broadcastIntent); 
} 




private void sendNotification(String message) { 
      // this 
      String ns = Context.NOTIFICATION_SERVICE; 
      NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 

      int icon = R.drawable.notification; 
      CharSequence tickerText = message; // ticker-text 
      long when = System.currentTimeMillis(); 
      Context context = getApplicationContext(); 
      CharSequence contentTitle = modelNotificationMessage.getKey(); 
      CharSequence contentText = message; 
      Intent notificationIntent = null; 
      int NOTIFICATION_ID = 9999; 



       NOTIFICATION_ID = CommonVariable.notification_message; 
       notificationIntent = new Intent(this, ViewMessages.class); 
       contentText = arrayList.get(0).getDescription(); 
       tickerText = arrayList.get(0).getDescription(); 

      // and this 
      PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
        notificationIntent, 0); 
      Notification notification = new Notification(icon, tickerText, when); 
      // Play default notification sound 
      notification.defaults |= Notification.DEFAULT_SOUND; 
      notification.setLatestEventInfo(context, contentTitle, contentText, 
        contentIntent); 
      mNotificationManager.notify(NOTIFICATION_ID, notification); 
     } 
+0

To nie jest to, czego szuka, chce, aby ikona na pasku powiadomień była wyświetlana po prawej stronie. –

+0

Powiadomienie o powiadomieniu = nowe powiadomienie (ikona, tickerText, kiedy); proszę znaleźć ten wiersz w powyższym kodzie..na ta linia jest wyświetlana ikona powiadomienia na pasku stanu. – dipali

+0

spowoduje to utworzenie domyślnego powiadomienia, sprawdź http://developer.android.com/reference/android/app/Notification.html –

0

Mam jeden prosty pomysł, tj:

W manifest deklaruje orientację ekranu z Androidem jako krajobraz i projekt podobny do krajobrazu w trybie portretowym dzięki czemu aplikacja wygląda portret w trybie poziomym.

+0

: świetny pomysł. to działało dobrze. Dzięki – ArunMak

+0

Haha. . działa to tylko w aplikacji. . . Chcę, aby to działało na przycisku widgetu, aby było widoczne zawsze na stronie głównej. . . dobra sztuczka: P –

+0

W pewnym stopniu trzeba zmodyfikować system operacyjny Android, ale ponieważ system Android jest open source, nie stanowi to problemu. Problem polega na zainstalowaniu go na telefonach - jeśli zauważyłeś, jedynymi firmami, które mają niestandardowe interfejsy użytkownika, są również producenci telefonów, więc mogą po prostu wysyłać swoje telefony z zainstalowanym oprogramowaniem. – Ruban

2

Musisz zmodyfikować kilka miejsc:

ramową/Base/core/RES/RES/wartości/config.xml dodać szczelinę w: <string-array name="config_statusBarIcons">

następnie ram/base/pakiety/SystemUI/src/com/android/SystemUI/statusbar/telefon/PhoneStatusBarPolicy.java:

mService.setIcon("<your slot name>", R.drawable.yourlogo, 0, null); 
mService.setIconVisibility("<your slot name>", setVisible); 

to głównie to, jestem pewien, że można dowiedzieć się, resztę na własną rękę z jakąś metodą prób i błędów.