Как создать значок "Значок состояния" на правой стороне?
Хорошо, я видел, как многие люди просто отвергли этот вопрос, сказав
"он зарезервирован для компонента ОС"
"для этого требуется доступ к источнику"
Ну, у меня есть доступ к источнику, и я могу установить любое приложение или виджет, который я хочу в качестве системного приложения. Итак, теперь, как я могу сделать, чтобы мой виджет показывал свое уведомление с правой стороны?
EDIT:
ok ppl идут в неправильном направлении, так что добавьте контекст здесь.,
посмотрите на телефон ур., u видеть сигнал Wi-Fi и телефонный сигнал на правой стороне телефона все время. Я хочу, чтобы там был показан и мой сигнал., наряду с системными сигналами., У меня есть новый аппаратный чип в планшете, который делает моя компания, и я должен постоянно показывать его уровень сигнала, как сигнал телефона. Он будет интегрирован в Android-планшет планшета.
Ответы
Ответ 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);
}
Ответ 5
Я нашел некоторую связанную информацию о вашем вопросе на этом форуме...
http://forum.kde.org/viewtopic.php?t=107601
- Добрый день