我想在 S Pen 分离时立即打开我的应用程序,如果仅在我的应用程序再次打开时调用放在 onSPenDetached 下的方法,你怎么能做到这一点?
谢谢,昌都
小智 5
以下适用于我的 Galaxy Tab A 9.7 和运行 Android 5.0.2 的 S-Pen (SM-P550)。
安装和拆卸的手写笔创建类型的广播意图com.samsung.pen.INSERT与命名booleanExtrapenInsert的false,如果分离,并true如果放回设备。
因此可以创建一个广播接收器来过滤这种事件。以下代码适用于这样的广播接收器,如果触控笔分离,它会启动 OneNote:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class SPenDetachIntentBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent penInsertIntent) {
if (!penInsertIntent.getBooleanExtra("penInsert", true)) {
try {
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("com.microsoft.office.onenote");
context.startActivity(launchIntent);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在清单文件中,您需要将其声明为com.samsung.pen.INSERT使用意图过滤器侦听广播意图的接收器。项目AndroidManifest.xml声明中的以下条目SPenDetachBroadcastReceiver生成一个实例并使其侦听com.samsung.pen.Insert广播意图:
<receiver
android:name=".SPenDetachIntentBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.samsung.pen.INSERT" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
与registerSPenDetachmentListener在SPenEventLibrary对象上使用实现Service的onSPenDetached方法注册相比的优势在于,您不需要任何额外的库文件,也不需要额外的权限。
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |