20

Bluetoothデバイスからファイルを受信するアプリケーションを実装したいと思います。

受信する前に、着信ファイル要求を受け入れるように通知が発行されます。

そこから、ユーザーが別のBluetoothペアデバイスから2番目のファイルを受信したときに、ユーザーがアプリケーションを起動したときに通知を妨害することなく、「承認」をアクティブにして、承認ダイアログを表示せずにファイルを自動的にダウンロードしたいと思います。

4

3 に答える 3

1

Bluetoothソケット接続を使用して、クライアントサーバーのTCPのような接続を設定してみてください。

于 2012-04-28T20:57:13.593 に答える
1

この種のタスクを含むアプリを開発しました。BluetoothChatのを使用できます。セキュアフラグをfalseに設定する必要があります。`booleansecure= false;

        try {
            if (secure) {
                tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE,
                    MY_UUID_SECURE);
            } else {
                tmp = mAdapter.listenUsingInsecureRfcommWithServiceRecord(
                        NAME_INSECURE, MY_UUID_INSECURE);
            }
        } catch (IOException e) {
            Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e);

        mmServerSocket = tmp;
    }`

次に、ConnectedThreadにあるInputStreamからバッファーを読み取ります。

while (true) {
            try {

                bytes = mmInStream.read(buffer);
                 /*write bytes in a file*/


            } catch (IOException e) {
                Log.e(TAG, "disconnected", e);
                connectionLost();

                BluetoothChatService.this.start();
                break;
            }
        }
于 2012-05-02T12:02:40.117 に答える
0

ルート権限を取得されたデバイスでは、目標を達成するために携帯電話にインストールできるアプリは2つだけです。

  1. XPosedインストーラー
  2. 自動承認

このようにして、システムサービスをフックします。

import android.util.*;
import de.robv.android.xposed.*;
import de.robv.android.xposed.callbacks.XC_LoadPackage.*;

import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;

public class Tutorial implements IXposedHookLoadPackage
{

    private String TAG="TUTORIAL";
    public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
        if (!lpparam.packageName.equals("com.android.bluetooth"))
        {
            Log.i(TAG,"Not: "+lpparam.packageName);
            return;
        }
        Log.i(TAG,"Yes "+lpparam.packageName);  

        findAndHookMethod("com.android.bluetooth.opp.BluetoothOppManager", lpparam.classLoader, "isWhitelisted", String.class,new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    Log.v(TAG,"HOOK DONE");
                    param.setResult(true); /* you can compare the sender address(String) with your computer and determine if you return true or just allow the original method to be called after this returns.*/

                }
            });

    }
}

詳細については、SOの私の回答をご覧ください。

ここにいくつかの直接リンクを投稿します。

リンク

自動受け入れアプリのドロップボックスリンク

プロジェクトファイルのドロップボックスリンク(zip)

Xposedapkサイト

お使いの携帯電話をroot化するTowelrootサイト

githubリポジトリを自動受け入れる

于 2018-08-10T05:20:51.420 に答える