android穿消息api启动活动和方法

时间:2015-03-06 23:52:39

标签: java android android-intent wear-os android-wear-data-api

我的android设备有问题我可以通过在移动设备上加载turnOn()onCreate来打开带有消息api的相机。

问题一:如果手机被锁定,我无法打开活动。 问题二:如果手机解锁但无法拨打手机的方法,我只能开始一项活动。我启动相机的唯一方法是使用wearListener服务在Oncreate()方法上启动MainActivity。

我想要这样的应用:https://play.google.com/store/apps/details?id=com.jumpbyte.flashlight

这是我的代码: Oncreate方法电话

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent intent = getIntent() ;
        int valor = intent.getIntExtra("parameter",0);
        String value = "key" ;
        if (valor == 0){
            boolean isCameraFlash = getApplicationContext().getPackageManager()
                    .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
            if(!isCameraFlash) {
                showCameraAlert();
            } else {
                camera = Camera.open();
                params = camera.getParameters();
            }
            if(isFlashlightOn) {
                setFlashlightOff();
            } else {
                setFlashlightOn();
            }
        }
        else{
            finish();
        }
        /* boolean isCameraFlash = getApplicationContext().getPackageManager()
                .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
        if(!isCameraFlash) {
            showCameraAlert();
        } else {
            camera = Camera.open();
            params = camera.getParameters();
        }

        if(isFlashlightOn) {
            setFlashlightOff();
        } else {
            setFlashlightOn();
        }

*/
    }

听众电话:

private static final String HELLO_WORLD_WEAR_PATH = "/hello-world-wear" ;
    public void onMessageReceived(MessageEvent messageEvent) {
        if (messageEvent.getPath().equals(HELLO_WORLD_WEAR_PATH)) {
            // AudioManager audiomanager ;
            // audiomanager = (AudioManager)getSystemService(Context.AUDIO_SERVICE) ;
            // audiomanager = (AudioManager)getSystemService(Context.AUDIO_SERVICE) ;
            // audiomanager.adjustVolume(AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI) ;
            // Toast.makeText(getApplicationContext(), "Volume Up | Vibration Time Increased", Toast.LENGTH_SHORT).show() ;
            //light lightOne = new light();
            // MainActivity one = new MainActivity() ;
            // one.messageone();
            // lightOne.on();
            // Toast.makeText(getApplicationContext(),
            //        "Button is clicked", Toast.LENGTH_LONG).show() ;
            Intent startIntent = new Intent(this, MainActivity.class) ;
            startIntent.putExtra("parameter", 0); //Optional parameters
            startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ;
            startActivity(startIntent) ;
            /* if(isFlashlightOn) {
                setFlashlightOff();
            } else {
                setFlashlightOn();
            }
            */
        } else {

        } } }

穿上主要课程:

private void sendMessage() {
        if (mNode != null && mGoogleApiClient!=null && mGoogleApiClient.isConnected()) {
            Wearable.MessageApi.sendMessage(
                    mGoogleApiClient, mNode.getId(), HELLO_WORLD_WEAR_PATH, null).setResultCallback(

                    new ResultCallback<MessageApi.SendMessageResult>() {
                        @Override
                        public void onResult(MessageApi.SendMessageResult sendMessageResult) {

                            if (!sendMessageResult.getStatus().isSuccess()) {
                                Log.e("TAG", "Failed to send message with status code: "
                                        + sendMessageResult.getStatus().getStatusCode());
                            }
                        }
                    }
            );
        }else{        } }
    protected void onStart() {
        super.onStart() ;
        if (!mResolvingError) {
            mGoogleApiClient.connect() ;
        } }
    private void resolveNode() {
        Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
            @Override
            public void onResult(NodeApi.GetConnectedNodesResult nodes) {
                for (Node node : nodes.getNodes()) {
                    mNode = node ; }     }
        }) ; }
    public void onConnected(Bundle bundle) {
        resolveNode();
    }
    public void onConnectionSuspended(int i) {
        //Improve your code
    }
    public void onConnectionFailed(ConnectionResult connectionResult) {
        //Improve your code
    }

有人可以帮我解决问题,请找不到任何方法来解决这两个问题。我想要这样的应用:https://play.google.com/store/apps/details?id=com.jumpbyte.flashlight

1 个答案:

答案 0 :(得分:0)

我自己有点像菜鸟,但我遇到了类似的问题,所以我会尝试对目前为止所学到的东西提供一些意见。

我认为任何代码都不在onCreate(),因为它只会在首次打开应用时运行一次。

首先,我会将您在onCreate()内编写的所有代码都写在onCreate()之外的单独方法中。像intent,valor和value这样的常量应该是私有的并且在普通Main Activity之内。

在制作新方法和一些复制意大利面后,我会在onMessageReceived()内运行它。

这是指向MessageAPIDemo的链接。很有帮助。

我个人无法在手机上没有打开应用时收到手机,有点类似于您的锁定手机问题。我希望我能得到一些帮助。