APKは隠しAPIを呼び出します
SerialServiceの呼び出し例
1、修改フレームワーク\ base \ core \ java \ android \ hardware \ SerialManager.java
次のコードを追加します。
public static SerialManager getInstance(Context context){
mSerialManager = (SerialManager)context.getSystemService(Context.SERIAL_SERVICE);
return mSerialManager;
}
2.コードをコンパイルしてclass.jarを生成します
コマンド:./ buildall_userdebug.sh B5528BIO
コンパイルが成功すると、次のように生成されます
out \ target \ common \ obj \ JAVA_LIBRARIES \ framework_intermediates \ classes.jar
3.図に示すように、classes.jarの名前をframework.jarに変更し、AndroidStudioにインポートします。
4.プロジェクトのbuild.gradleに次のコードを追加します
5. SerialManager.java- > getInstance ()メソッドを呼び出します
getSerialPorts()アプリを呼び出すには、android.permission.SERIAL_PORT権限を取得する必要があります
システム以外のアプリがこの権限を取得すると、エラーが報告されます。AndroidStudioのデフォルト構成を次のように変更する必要があります。
次に、apkをコンパイルして生成し、このapkをシステムにビルドします。
- 図に示すように、Packages / apps /の下にフォルダーを作成し、android.mkファイルを追加して、スタジオによって生成されたapkをインポートします。
- anroid.mkコンパイルの変更
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MyApplicition
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := MyApplicition.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PREBUILT_JNI_LIBS := \
@lib/armeabi-v7a/liben_data_bundle.so \
@lib/armeabi-v7a/libgnustl_shared.so \
@lib/armeabi-v7a/libhmm_gesture_hwr_zh.so \
@lib/armeabi-v7a/libhwrword.so \
@lib/armeabi-v7a/libpinyin_data_bundle.so
LOCAL_MODULE_PATH := $(TARGET_OUT)/app
LOCAL_CERTIFICATE := platform
LOCAL_DEX_PREOPT := false
LOCAL_PACKAGE_NAME := MyApplicition
LOCAL_PRIVATE_PLATFORM_APIS := true
include $(BUILD_PREBUILT)
- device \ mediatek \ mt6761 \ device.mkマクロを追加
PRODUCT_PACKAGES += MyApplicition
- ./buildall_userdebug.sh B5528BIO
コンパイルが成功すると、システム/アプリの下にapkが生成されます