Подтвердить что ты не робот

Как создать значок "Значок состояния" на правой стороне?

Хорошо, я видел, как многие люди просто отвергли этот вопрос, сказав

"он зарезервирован для компонента ОС"

"для этого требуется доступ к источнику"

Ну, у меня есть доступ к источнику, и я могу установить любое приложение или виджет, который я хочу в качестве системного приложения. Итак, теперь, как я могу сделать, чтобы мой виджет показывал свое уведомление с правой стороны?

EDIT: ok ppl идут в неправильном направлении, так что добавьте контекст здесь., посмотрите на телефон ур., u видеть сигнал Wi-Fi и телефонный сигнал на правой стороне телефона все время. Я хочу, чтобы там был показан и мой сигнал., наряду с системными сигналами., У меня есть новый аппаратный чип в планшете, который делает моя компания, и я должен постоянно показывать его уровень сигнала, как сигнал телефона. Он будет интегрирован в Android-планшет планшета.

4b9b3361

Ответ 1

Вам может потребоваться обратиться к коду исходного кода Android для строки состояния телефона, https://android.googlesource.com/platform/frameworks/base/+/android-4.3_r3.1/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

И взгляните на методы вроде

addIcon
updateIcon
removeIcon

Это непростая задача, так как вам нужно добавить много вещей.

Ответ 2

Вам нужно будет изменить несколько мест:

framework/base/core/res/res/values ​​/config.xml, добавьте слот в: <string-array name="config_statusBarIcons">

затем frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java:

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

Что в основном это, я уверен, что вы можете выяснить остальное самостоятельно с некоторыми проб и ошибок.

Ответ 3

У меня есть одна простая идея:

В манифесте объявить ориентацию экрана Android как пейзаж   и дизайн, как пейзаж для портретного режима   так что приложение ur выглядит как портрет в ландшафтном режиме.

Ответ 4

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