Folgende smali Code bekommt eine URL von String und dann können wir diesen Link zu anderen Apps teilen. Aber ich möchte etwas permanenten Text anstelle von URL oder den Text, der von String zurückgegeben wird, senden. Zum Beispiel möchte ich "Hallo, wie geht es dir" anstelle des temporären Textes, der aus einer Zeichenfolge abgerufen wird, teilen. Also, was soll ich im folgenden smali code ändern, um dies zu erreichen?smali-wie man einen festen Text in diesem Code setzt
.line 512
const-string v2, "android.intent.action.SEND"
invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 513
const-string v2, "android.intent.extra.SUBJECT"
iget-object v3, p0, Lcom/myapp/c/b/q;->t:Lcom/myapp/a/b/c;
iget-object v3, v3, Lcom/myapp/a/b/c;->d:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 514
const-string v2, "android.intent.extra.TEXT"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
iget-object v4, p0, Lcom/myapp/c/b/q;->t:Lcom/myapp/a/b/c;
iget-object v4, v4, Lcom/myapp/a/b/c;->d:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, "\n\n"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v3, "\n\n"
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, v6, Lcom/myapp/a/a/n;->c:Ljava/lang/String;
invoke-static {v3}, Landroid/text/Html;->fromHtml(Ljava/lang/String;)Landroid/text/Spanned;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v2, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 515
const-string v0, "text/plain"
invoke-virtual {v1, v0}, Landroid/content/Intent;->setType(Ljava/lang/String;)Landroid/content/Intent;
.line 516
const v0, 0x7f020126
.line 517
invoke-virtual {p0, v0}, Lcom/myapp/c/b/q;->getString(I)Ljava/lang/String;
move-result-object v0
.line 518
invoke-static {v1, v0}, Landroid/content/Intent;->createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;)Landroid/content/Intent;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/myapp/c/b/q;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/lang/Error; {:try_start_0 .. :try_end_0} :catch_1
goto :goto_0
.line 519
:catch_0
move-exception v0
invoke-static {v0}, Lcom/myapp/d/e;->a(Ljava/lang/Exception;)V
goto :goto_0
.line 520
:catch_1
move-exception v0
Ihre beste Wette ist zu kodieren bis zu etwas ähnlichem, was Sie in Java werden sollen, und dann kompilieren + dass zerlegen und es als die Basis für das, was Sie tun möchten. – JesusFreke
Auch ist es nicht sehr klar, was Sie fragen :) – JesusFreke
Es gibt eine Schaltfläche "Teilen" in einer App. Wenn wir darauf klicken, werden andere Apps geöffnet, in denen wir eine Website-URL teilen können. Die App ruft URL aus dem Internet ab und wenn wir auf "Teilen" klicken, wird der Link geladen und wir können ihn teilen. Aber was ich verlange, ist, anstatt einen abgerufenen Link zu teilen, möchte ich etwas permanenten Text teilen. Beispiel, app ruft diesen Link ab (www.example.com/abcd) und wenn wir teilen, wird dieser Link geteilt. Stattdessen möchte ich immer etwas Text teilen. Immer wenn ich auf share klicke und andere Apps öffne (Beispiel WhatsApp), sollte ich in der Lage sein, diese tex zu teilen >> "das ist app Link" – user3548321