Compartir texto a app inventor

He estado investigando, porque necesito compartir texto a una app creada con app inventor.

No necesito que tenga un botón mi app y que esta pueda compartir, esto ya se como se hace.

Necesito lo contrario (que aparezca por ejemplo mi app en chrome) y al pulsar se me abra la app con lo que se a compartido.

aclaración/ejemplo: estamos en Google Chrome y queremos compartir el enlace desde las opciones. y nos sale: whatsapp, facebook,... pues que aparezca también mi app. y claramente que mi app capture lo que se le envía.

manifest:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="appinventor.ai_quique81.cutout" platformBuildVersionCode="22" platformBuildVersionName="5.1.1-1819727">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <application android:debuggable="false" android:icon="@drawable/ya" android:label="cutout" android:name="com.google.appinventor.components.runtime.multidex.MultiDexApplication">
        <activity android:configChanges="keyboard|keyboardHidden|orientation" android:name=".Screen1" android:windowSoftInputMode="stateHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".YourActivity" >
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
</activity>
        <activity android:configChanges="keyboard|keyboardHidden|orientation" android:name="appinventor.ai_quique81.cutout.Screen2" android:windowSoftInputMode="stateHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
            </intent-filter>
        </activity>
    </application>
</manifest>
2
задан 02.09.2016, 01:11
2 ответа

Для того, чтобы приложение появилось в списке выборов shared, ты должен использовать intent-filter.

Какие-то примеры здесь и здесь.

В способ они обобщают, в твоем manifest определи (документацию):

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

Внутри intent-filter у нас есть 3 признака:

  • action: В твоем случае SEND чтобы получать.
  • category: Важно, что был DEFAULT
  • data android: Тип data который ты получаешь, в этом случае плоский текст. Он мог бы быть image/* чтобы принимать все виды изображений.
2
ответ дан 24.11.2019, 13:31
  • 1
    В documentaci и # 243; n у тебя есть оставшаяся часть informaci и # 243; n, в котором ты смог нуждаться, если у тебя есть другие конкретные сомнения com и # 233; ntamelo и я пробую приспосабливать ответ. – Miquel Coll 31.08.2016, 16:58
  • 2
    если, что у меня есть вопрос, и #191; как я могу помещать это в app изобретатель? – Enrique Ballester Gómez 01.09.2016, 16:13
  • 3
    Клясться и # 237; по отношению к которому в appinventor ты имеешь файл Manifest (XML). и #191; не est и # 225;? – Miquel Coll 01.09.2016, 18:37

У всех приложений Android есть файл Manifest, если ты не делаешь ее вручную, он создается автоматически, я не использовал Апп Инвентор, чтобы создавать apps, но ты можешь тестировать то, что я предлагаю.

Мое предложение:

1. - Разряд Apktool, это - приложение для инженерного дела некрай к файлам apk's. Ты можешь делать это отсюда, остается серия шагов для установки, которые очень простые.

2. - Ты нуждаешься в том, чтобы считать установленным JDK Java, загрузись отсюда.

3. - Нуждаться в том, чтобы считать установленным SDK Android, загружается отсюда

4. - Располагать framework-res.apk, (ты это находишь в/system/framework/framework-res.apk).

5. - Ты располагаешь apk (В этом случае он был бы твоим app appInventor)

Когда ты будешь считать это готовым, найди тебя в folder apk и пишет следующее в консоли для descompilar apk:

apktool d -s nombre_de_tu_app.apk

С этим ты создаешь папку с тем же именем, что и твой app, входишь в папку и ты увидишь каталог, сходный с этим:

--TuApp
     ---Assets
     ---Original
     ---res
     ---smali
     ---AndroidManifest.xml

. . .

Тогда, ты открываешь так называемый файл AndroidManifest.xml, у которого будет аспект, сходный с этим:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="appinventor.ai_mletsch80.AppInvActivityStarter">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  . . .

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

            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
                <action android:name="com.google.android.apps.googlevoice.SMS_RECEIVED" android:permission="com.google.android.apps.googlevoice.permission.RECEIVE_SMS"/>
            </intent-filter>
        </receiver>
    </application>
</manifest>

Там ты размещаешь линии кода, которые представляют тебя в другом ответе:

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

Сделав твои изменения только договорись о том, чтобы вновь составить твой app, со следующим:

apktool b nombre_de_tu_app

Замечание:

nombre_de_tu_app - имя твоего app, ты не должен размещать расширение apk или тебя пометит ошибка.

РЕДАКТИРОВАНИЕ

В конце концов твой файл Manifest должен оставаться нечто похожее (Добавляя линии под твоей активностью launcher):

 <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
<!-- Aquí por debajo de MAIN y LAUNCHER ya agregas las líneas -->
       <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/*" />

Это было бы совсем, если ты хочешь изучить и узнать больше на descompilación и перекомпиляции apks ты можешь посещать этот сайт (на английском) и будьте другим (на испанском языке)

1
ответ дан 24.11.2019, 13:31
  • 1
    большое спасибо из-за ответа! в бывший сложно немного составлять это мне не хватало подписи xD., но не солите в список приложений, чтобы иметь. (наверху я помещаю c и # 243; я говорю manifest) – Enrique Ballester Gómez 02.09.2016, 01:09
  • 2
    #191; В котором активность ты разместил их l и # 237; neas Manifest? – x4mp73r 02.09.2016, 01:14
  • 3
    Эх обновленный мой ответ с примером, поскольку смог остаться твой Manifest, agregu и # 233; все типы файла для того, чтобы не было, потеряй... Помни, что это только пример, поэтому он говорит " yourActivity" все это идет внутри твоей главной активности, а именно, Mainactivity. – x4mp73r 02.09.2016, 01:19
  • 4
    Проверь мой пример и исправь твой Manifest. – x4mp73r 02.09.2016, 01:24