Я работаю над приложением (просто небольшой проект для себя, я не помещаю его в Play Store), который отправит тост. Моя конечная цель - иметь команду оболочки для отправки тоста. Мне все равно, как я получаю эти результаты, я просто хочу, чтобы он работал.Пользовательское намерение сбой моего приложения
Я думаю, что у меня будет команда оболочки, отправляющая намерение в мое приложение. Я использую пользовательское намерение:
<intent-filter>
<action android:name="com.tylerr147.toast" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
Когда я использую adb shell am start -a "com.tylerr147.toast" --es "android.intent.extra.TEXT" "toasty" -t "text/plain"
, чтобы запустить его, мое приложение падает.
Вот мой AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tylerr147.intenttoast" >
<application android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name=".handler" >
<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="com.tylerr147.toast" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
</application>
</manifest>
И мой handler.java
package com.tylerr147.intenttoast;
import android.app.*;
import android.content.*;
import android.net.*;
import android.os.*;
import android.widget.*;
import java.util.*;
import android.util.*;
public class handler extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
handleSendText(intent);
}
public void handleSendText(Intent intent)
{
try{ String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
if (sharedText != null) {
// Update UI to reflect text being shared
Toast.makeText(getApplicationContext(), sharedText, Toast.LENGTH_LONG).show();
}
} catch(Exception e) {
Log.e("Boked", e.toString());
}
}
}
Спасибо за любую помощь!
Хотя на этот раз он не потерпел крушение, он также не сделал тост. –