MacroDroid Intent an eigene App senden

  • Antworten:3
  • Bentwortet
Sub7evenHH
  • Forum-Beiträge: 2

05.08.2019, 20:14:16 via Website

Hi,
ich bin blutiger Anfänger, erhoffe mir hier aber etwas Hilfe :)

Ich möchte mit der App "MacroDroid" Daten an meine eigene App senden. Leider finde ich hierzu so überhaupt nichts was mir hilft...

So sieht die AndroidManifest aus:

  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="SPAMFILTERschemas.android.com/apk/res/android"
    package="com.example.test123">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="image/*" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEND_MULTIPLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="image/*" />
            </intent-filter>

        </activity>
    </application>

Und so meine MainActivity.class:

package com.example.test123;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
public TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text1) ;

        Intent intent = getIntent();
        String action = intent.getAction();
        String type = intent.getType();

        if (Intent.ACTION_SEND.equals(action) && type != null) {
            if ("text/plain".equals(type)) {
                handleSendText(intent); // Handle text being sent
            }
        }
    }

    void handleSendText(Intent intent) {
        String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
        if (sharedText != null) {

textView.setText(sharedText);
        }
    }


}


</manifest>

Wenn ich in MacroDroid nun eine Aktion "Intent senden" erstelle, gebe ich folgendes in die Felder ein:

Ziel: Activity
Aktion: com.example.test123.android.intent.action.Send
Einheit: com.example.test123
Daten:
Daten:

Wenn ich das Macro nun ausführe, erhalte ich folgenden Fehler:

No Activity found to handle Intent { act=com.example.test123.android.intent.action.SEND flg=0x10000000 pkg=com.example.test123}

Ich bin am verzweifeln :(

Kommentieren
Beste Antwort
Jokel
  • Forum-Beiträge: 1.527

05.08.2019, 22:28:13 via Website

Hallo ich gehe mal davon aus das in der Marco app ein impizirter intent benutzt wird.

Bei einem implizirten intent sollte die Action genauso aussehen wie im intentfilter.
Das heißt in deinem Fall ohne deinem package Name. Nur die Action

"android.intent.action.SEND"

Hilfreich?
Sub7evenHH
Kommentieren
Sub7evenHH
  • Forum-Beiträge: 2

05.08.2019, 23:04:21 via Website

Hi!
Dankeschön :)

Ich habe es bereits hinbekommen.

Lösung:

Ziel: Activity
Aktion: com.example.test123.action.Send
Einheit: com.example.test123
Daten: com.example.test123.MainActivity
Daten: Test Text

Allerdings weiß ich nicht wie ich die Daten als text/plain versende :( Weiß da noch jemand weiter?

Danke erstmal für die Hilfe :)

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

06.08.2019, 07:51:32 via Website

Wieso muss das als "text/plain" versendet werden?
Die Daten sollten als String Extra gespeichert werden.
Im Debugmode solltest du das mal checken, welde daten übertragen werden

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren