Resmi Android uygulaması Google Play üzerinde kullanılabilir. Bu, yardımcı bir düğümdür ve çalışan bir OpenClaw Gateway gerektirir. Kaynak kodu da OpenClaw deposunda
apps/android altında bulunur; derleme yönergeleri için apps/android/README.md bölümüne bakın.Destek özeti
- Rol: yardımcı düğüm uygulaması (Android Gateway barındırmaz).
- Gateway gerekli: evet (macOS, Linux veya WSL2 üzerinden Windows üzerinde çalıştırın).
- Kurulum: uygulama için Google Play, Gateway için Başlarken, ardından Eşleştirme.
- Gateway: Çalıştırma kitabı + Yapılandırma.
- Protokoller: Gateway protokolü (düğümler + kontrol düzlemi).
Sistem denetimi
Sistem denetimi (launchd/systemd) Gateway ana makinesinde bulunur. Bkz. Gateway.Bağlantı çalıştırma kitabı
Android düğüm uygulaması ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android doğrudan Gateway WebSocket’e bağlanır ve cihaz eşleştirmesini (role: node) kullanır.
Tailscale veya herkese açık ana makineler için Android güvenli bir uç nokta gerektirir:
- Tercih edilen:
https://<magicdns>/wss://<magicdns>ile Tailscale Serve / Funnel - Ayrıca desteklenir: gerçek bir TLS uç noktasına sahip başka herhangi bir
wss://Gateway URL’si - Şifresiz
ws://, özel LAN adreslerinde /.localana makinelerinde, ayrıcalocalhost,127.0.0.1ve Android emülatör köprüsünde (10.0.2.2) desteklenmeye devam eder
Önkoşullar
- Gateway’i “ana” makinede çalıştırabilirsiniz.
- Android cihaz/emülatör gateway WebSocket’e erişebilir:
- mDNS/NSD ile aynı LAN, veya
- Wide-Area Bonjour / tek noktaya yayın DNS-SD kullanarak aynı Tailscale tailnet (aşağıya bakın), veya
- Manuel gateway ana makinesi/bağlantı noktası (geri dönüş)
- Tailnet/herkese açık mobil eşleştirme, ham tailnet IP
ws://uç noktalarını kullanmaz. Bunun yerine Tailscale Serve veya başka birwss://URL’si kullanın. - CLI’yi (
openclaw) gateway makinesinde (veya SSH üzerinden) çalıştırabilirsiniz.
1) Gateway’i başlatın
listening on ws://0.0.0.0:18789
wss:// / https:// uç noktası sağlar. Düz bir gateway.bind: "tailnet" kurulumu, TLS’yi ayrıca sonlandırmadığınız sürece ilk kez uzak Android eşleştirmesi için yeterli değildir.
2) Keşfi doğrulayın (isteğe bağlı)
Gateway makinesinden:local. ile yapılandırılmış geniş alan etki alanını tek geçişte gösterir ve yalnızca TXT ipuçları yerine çözümlenmiş
hizmet uç noktasını kullanır.
Tek noktaya yayın DNS-SD ile Tailnet (Viyana ⇄ Londra) keşfi
Android NSD/mDNS keşfi ağlar arasında çalışmaz. Android düğümünüz ve gateway farklı ağlardaysa ancak Tailscale ile bağlıysa bunun yerine Wide-Area Bonjour / tek noktaya yayın DNS-SD kullanın. Keşif tek başına tailnet/herkese açık Android eşleştirmesi için yeterli değildir. Keşfedilen rota yine de güvenli bir uç nokta (wss:// veya Tailscale Serve) gerektirir:
- Gateway ana makinesinde bir DNS-SD bölgesi (örnek
openclaw.internal.) kurun ve_openclaw-gw._tcpkayıtlarını yayımlayın. - Seçtiğiniz etki alanı için Tailscale bölünmüş DNS’yi bu DNS sunucusuna işaret edecek şekilde yapılandırın.
3) Android’den bağlanın
Android uygulamasında:- Uygulama gateway bağlantısını bir ön plan hizmeti (kalıcı bildirim) aracılığıyla canlı tutar.
- Bağlan sekmesini açın.
- Kurulum Kodu veya Manuel modunu kullanın.
- Keşif engellenirse Gelişmiş denetimler içinde manuel ana makine/bağlantı noktası kullanın. Özel LAN ana makineleri için
ws://hâlâ çalışır. Tailscale/herkese açık ana makineler için TLS’yi açın ve birwss:/// Tailscale Serve uç noktası kullanın.
- Manuel uç nokta (etkinse), aksi takdirde
- Son keşfedilen gateway (en iyi çaba).
Varlık canlı işaretleri
Kimliği doğrulanmış düğüm oturumu bağlandıktan sonra ve uygulama arka plana geçtiğinde ön plan hizmeti hâlâ bağlıysa Android,event: "node.presence.alive" ile
node.event çağırır. Gateway bunu, yalnızca kimliği doğrulanmış düğüm cihaz kimliği bilindikten sonra
eşleştirilmiş düğüm/cihaz meta verilerinde lastSeenAtMs/lastSeenReason olarak kaydeder.
Uygulama, işaretin başarıyla kaydedildiğini yalnızca gateway yanıtı
handled: true içerdiğinde kabul eder. Eski gateway’ler node.event öğesini { "ok": true } ile onaylayabilir; bu yanıt
uyumludur ancak kalıcı bir son görülme güncellemesi olarak sayılmaz.
4) Eşleştirmeyi onaylayın (CLI)
Gateway makinesinde:role: node eşleştirmesi için geçerlidir.
Operatör/tarayıcı eşleştirmesi ve herhangi bir rol, kapsam, meta veri veya
açık anahtar değişikliği hâlâ manuel onay gerektirir.
5) Düğümün bağlı olduğunu doğrulayın
-
Düğüm durumu üzerinden:
-
Gateway üzerinden:
6) Sohbet + geçmiş
Android Sohbet sekmesi oturum seçimini destekler (varsayılanmain, ayrıca mevcut diğer oturumlar):
- Geçmiş:
chat.history(görüntü için normalleştirilmiş; satır içi yönerge etiketleri görünür metinden çıkarılır, düz metin araç çağrısı XML yükleri (<tool_call>...</tool_call>,<function_call>...</function_call>,<tool_calls>...</tool_calls>,<function_calls>...</function_calls>ve kesilmiş araç çağrısı blokları dahil) ve sızan ASCII/tam genişlikli model denetim belirteçleri çıkarılır, tamNO_REPLY/no_replygibi yalnızca sessiz belirteç içeren asistan satırları atlanır ve aşırı büyük satırlar yer tutucularla değiştirilebilir) - Gönder:
chat.send - Anlık güncellemeler (en iyi çaba):
chat.subscribe→event:"chat"
7) Canvas + kamera
Gateway Canvas Ana Makinesi (web içeriği için önerilir)
Düğümün aracının diskte düzenleyebileceği gerçek HTML/CSS/JS göstermesini istiyorsanız düğümü Gateway canvas ana makinesine yönlendirin.Düğümler canvas’ı Gateway HTTP sunucusundan yükler (
gateway.port ile aynı bağlantı noktası, varsayılan 18789).-
Gateway ana makinesinde
~/.openclaw/workspace/canvas/index.htmloluşturun. - Düğümü buraya yönlendirin (LAN):
.local yerine bir MagicDNS adı veya tailnet IP’si kullanın, örn. http://<gateway-magicdns>:18789/__openclaw__/canvas/.
Bu sunucu HTML içine canlı yeniden yükleme istemcisi enjekte eder ve dosya değişikliklerinde yeniden yükler.
Gateway ayrıca /__openclaw__/a2ui/ sunar, ancak Android uygulaması uzak A2UI sayfalarını yalnızca görüntüleme amaçlı kabul eder. Eylem yapabilen A2UI komutları, iletileri uygulamadan önce paketlenmiş uygulama sahipliğindeki A2UI sayfasını kullanır.
Canvas komutları (yalnızca ön planda):
canvas.eval,canvas.snapshot,canvas.navigate(varsayılan iskelete dönmek için{"url":""}veya{"url":"/"}kullanın).canvas.snapshot,{ format, base64 }döndürür (varsayılanformat="jpeg").- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLeski takma adı). Bu komutlar, eylem yapabilen işleme için paketlenmiş uygulama sahipliğindeki A2UI sayfasını kullanır.
camera.snap(jpg)camera.clip(mp4)
8) Ses + genişletilmiş Android komut yüzeyi
- Ses sekmesi: Android’in iki açık yakalama modu vardır. Mikrofon, her duraklamayı sohbet turu olarak gönderen ve uygulama ön plandan çıktığında veya kullanıcı Ses sekmesinden ayrıldığında duran manuel bir Ses sekmesi oturumudur. Konuş, sürekli Konuş Modudur ve kapatılana veya düğüm bağlantısı kesilene kadar dinlemeye devam eder.
- Konuş Modu, yakalama başlamadan önce mevcut ön plan hizmetini
connectedDeviceöğesindenconnectedDevice|microphoneöğesine yükseltir, ardından Konuş Modu durduğunda tekrar düşürür. Düğüm hizmetiCHANGE_NETWORK_STATEileFOREGROUND_SERVICE_CONNECTED_DEVICEbildirir; Android 14+ ayrıcaFOREGROUND_SERVICE_MICROPHONEbildirimini,RECORD_AUDIOçalışma zamanı iznini ve çalışma zamanında mikrofon hizmet türünü gerektirir. - Varsayılan olarak Android Konuş, yapılandırılmış gateway Konuş sağlayıcısı üzerinden yerel konuşma tanıma, Gateway sohbeti ve
talk.speakkullanır. Yerel sistem TTS yalnızcatalk.speakkullanılamadığında kullanılır. - Android Konuş, gerçek zamanlı Gateway aktarmasını yalnızca
talk.realtime.moderealtimevetalk.realtime.transportgateway-relayolduğunda kullanır. - Sesle uyandırma Android UX/çalışma zamanında devre dışı kalır.
- Ek Android komut aileleri (kullanılabilirlik cihaza, izinlere ve kullanıcı ayarlarına bağlıdır):
device.status,device.info,device.permissions,device.healthdevice.appsyalnızca Ayarlar > Telefon Yetenekleri > Yüklü Uygulamalar etkin olduğunda; varsayılan olarak başlatıcıda görünür uygulamaları listeler.notifications.list,notifications.actions(aşağıdaki Bildirim iletme bölümüne bakın)photos.latestcontacts.search,contacts.addcalendar.events,calendar.addcallLog.searchsms.searchmotion.activity,motion.pedometer
Asistan giriş noktaları
Android, sistem asistanı tetikleyicisinden (Google Assistant) OpenClaw başlatmayı destekler. Yapılandırıldığında, ana ekran düğmesini basılı tutmak veya “Hey Google, ask OpenClaw…” demek uygulamayı açar ve istemi sohbet düzenleyicisine aktarır. Bu, uygulama manifestinde bildirilen Android App Actions meta verilerini kullanır. Gateway tarafında ek yapılandırma gerekmez — asistan niyeti tamamen Android uygulaması tarafından işlenir ve normal bir sohbet iletisi olarak iletilir.App Actions kullanılabilirliği cihaza, Google Play Services sürümüne
ve kullanıcının OpenClaw’ı varsayılan asistan uygulaması olarak ayarlayıp ayarlamadığına bağlıdır.
Bildirim iletme
Android, cihaz bildirimlerini olaylar olarak gateway’e iletebilir. Birkaç denetim, hangi bildirimlerin ne zaman iletileceğini kapsamlandırmanıza olanak tanır.| Anahtar | Tür | Açıklama |
|---|---|---|
notifications.allowPackages | string[] | Yalnızca bu paket adlarından gelen bildirimleri ilet. Ayarlanırsa diğer tüm paketler yok sayılır. |
notifications.denyPackages | string[] | Bu paket adlarından gelen bildirimleri asla iletme. allowPackages sonrasında uygulanır. |
notifications.quietHours.start | string (HH:mm) | Sessiz saatler penceresinin başlangıcı (yerel cihaz saati). Bu pencere sırasında bildirimler bastırılır. |
notifications.quietHours.end | string (HH:mm) | Sessiz saatler penceresinin sonu. |
notifications.rateLimit | number | Paket başına dakikada iletilecek en fazla bildirim sayısı. Fazla bildirimler bırakılır. |
Bildirim iletme, Android Bildirim Dinleyicisi iznini gerektirir. Uygulama kurulum sırasında bunun için istem gösterir.